Javascript 如何停止在禁用的文本框字段中填充数据
我想在禁用文本框时停止绑定数据。单击左侧复选框后,值变为空,文本框变为禁用。但如果我在父文本框中键入任何数字,则该值将填充到禁用的文本框中 下面是代码Javascript 如何停止在禁用的文本框字段中填充数据,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我想在禁用文本框时停止绑定数据。单击左侧复选框后,值变为空,文本框变为禁用。但如果我在父文本框中键入任何数字,则该值将填充到禁用的文本框中 下面是代码 //data populate for tier1 globally $("#txtPercentofTier1").on("change", function (e) { $('.txtDataPopTier1').val($(this).val());
//data populate for tier1 globally
$("#txtPercentofTier1").on("change", function (e) {
$('.txtDataPopTier1').val($(this).val());
$('#txtPercentofTier1, #txtPercentofTier2').change(computeHead);
$("#txtOON").val($('#txtPercentofTier1, #txtPercentofTier2').change(computeHead));
});
$("#txtPercentofTier1").on("keyup", function (e) {
$('.txtDataPopTier1').val($(this).val());
$('#txtPercentofTier1, #txtPercentofTier2').change(computeHead);
});
//data populate for tier2 globally
$("#txtPercentofTier2").on("change", function (e) {
$('.txtDataPopTier2').val($(this).val());
$('#txtPercentofTier1, #txtPercentofTier2').change(computeHead);
$("#txtOON").val($('#txtPercentofTier1, #txtPercentofTier2').change(computeHead));
});
$("#txtPercentofTier2").on("keyup", function (e) {
$('.txtDataPopTier2').val($(this).val());
$('#txtPercentofTier1, #txtPercentofTier2').change(computeHead);
});
原因是您在设置值之前没有检查输入字段是否已禁用。不管输入字段是否被禁用,您仍然可以通过编程方式对其进行更新。禁用基本上只适用于实际(尝试)输入输入的人
$(“#禁用”)。在('change',(e)=>{
const bool=$(e.target).is(':checked');
$('#input2').attr('disabled',bool);
});
$('#input1')。on('keyup',(e)=>{
常量input2=$(“#input2”);
如果(!input2.is(':disabled'){/则原因是您在设置值之前未检查输入字段是否已禁用。无论输入字段是否已禁用,您仍然可以通过编程方式对其进行更新。禁用基本上只适用于实际(尝试)键入输入的人员
$(“#禁用”)。在('change',(e)=>{
const bool=$(e.target).is(':checked');
$('#input2').attr('disabled',bool);
});
$('#input1')。on('keyup',(e)=>{
常量input2=$(“#input2”);
if(!input2.is(':disabled')){/if(!$(选择器).is('[disabled=disabled]'){//populate}
请您详细说明一下。要检查输入元素,您需要查找已禁用的属性@DotNet Coder。如果您没有为此创建语句,则禁用的属性仅在用户交互时被禁用。它仍然可以通过编程方式更改,这就是您正在经历的。您需要y“如果我的输入字段未被禁用”,则填充我的字段。is()
函数基本上返回布尔值,true或false。因此,如果您检查属性是否已禁用且它存在,则为()
函数将返回true,因为它存在,字段被禁用。我们想说如果它没有禁用,然后填充字段,这就是为什么我们将!
操作符放在前面。问题仍然没有解决。我在下面使用的代码if(!$('.txtDataPopTier1')。是('[disabled=disabled]'){//populate$('.txtDataPopTier1').val($(this.val());}if(!$(选择器).is('[disabled=disabled]'){//populate}
请您详细说明一下。要检查输入元素,您需要查找已禁用的属性@DotNet Coder。如果您没有为此创建语句,则禁用的属性仅在用户交互时被禁用。它仍然可以通过编程方式更改,这就是您正在经历的。您需要y“如果我的输入字段未被禁用”,则填充我的字段。is()
函数基本上返回布尔值,true或false。因此,如果您检查属性是否已禁用且它存在,则为()
函数将返回true,因为它存在,字段被禁用。我们想说如果它没有禁用,然后填充字段,这就是为什么我们将!
操作符放在前面。问题仍然没有解决。我在下面使用的代码if(!$('.txtDataPopTier1')。是('[disabled=disabled]'){//populate$('.txtDataPopTier1').val($(this.val());}如果我有5个具有相同类名的文本框,会发生什么情况。那么我如何才能找到在同一类下禁用或不禁用的文本框?您可以进行设置以处理该问题。$。在这种情况下,最接近的
将有助于确定它位于哪一行。您能给出一个示例吗?如果我有5个具有相同类名的文本框,会发生什么情况。而不是c“我找到哪个文本框被禁用或不在同一类下?”您可以设置来处理它。$。在这种情况下,最接近的
将有助于确定它在哪一行。您能举个例子吗?