首页 > 解决方案 > 在表单中使用 jQuery 更改输入文本值

问题描述

我有 2 个复选框输入和 1 个输入文本。 在此处输入图像描述 当我单击复选框 #1 时,我想禁用复选框 #2,然后在输入文本中添加一个文本 (my-text-1) 并使其不可更改

当我单击复选框 #2 时,我想禁用复选框 #1,然后在输入文本中添加一个文本 (my-text-2) 并使其不可更改

使用 jQuery 3.4.1

所以,它有效,但......

当我提交表单时,输入文本的值没有记录在我的数据库中。这就像字段是空的。

$(document).ready(function(){
    $("#checkbox1").on('click', function(){
		if($(this).is(':checked')) {
			$("#inputtext").val("my-text-1").prop('disabled', true);          
			$("#checkbox2").prop('disabled', true);
		} else {
      $("#inputtext").val("").prop('disabled', false);
			$("#checkbox2").prop('disabled', false);
		}
	});
    
    $("#checkbox2").on('click', function(){
		if($(this).is(':checked')) {
      $("#inputtext").val("my-text-2").prop('disabled', true);
			$("#checkbox1").prop('disabled', true);
		} else {
      $("#inputtext").val("").prop('disabled', false);
			$("#checkbox1").prop('disabled', false);
		}
	});
    
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Checkbox #1</label>
<input id="checkbox1" type="checkbox" value="" name="checkbox1"><br/>
<label>Checkbox #2</label><input id="checkbox2" type="checkbox" value="" name="checkbox2"><br/>
<label>Text : </label><input name="inputtext" id="inputtext" type="text" size="50" maxlength="50" value="" />

标签: javascriptphphtmljquery

解决方案


而不是disabledinput[text]元素上使用属性使用readonly属性。disabled未提交元素的数据:

$("#inputtext").val("my-text-1").prop('readonly', true);

另一种选择是在提交表单之前启用该元素。

参考


推荐阅读