Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery基于另一个输入禁用一个输入_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery基于另一个输入禁用一个输入

Javascript jquery基于另一个输入禁用一个输入,javascript,jquery,html,Javascript,Jquery,Html,我有两个输入,其中一个是禁用的,如果用户在另一个输入中添加了任何内容,alt标记将被删除。这部分很好用。但如果在第一个输入中预定义了值,我还想禁用相同的输入。有时第一个输入是空的,用户必须填充它,有时它有预定义的值,所以应该禁用另一个输入并删除alt标记 Tnx $('.gsmhr')。在('input',function()上{ if($(this.val().length) $('.gsmslo1').prop('disabled',true).val('.removeAttr(“alt

我有两个输入,其中一个是禁用的,如果用户在另一个输入中添加了任何内容,alt标记将被删除。这部分很好用。但如果在第一个输入中预定义了值,我还想禁用相同的输入。有时第一个输入是空的,用户必须填充它,有时它有预定义的值,所以应该禁用另一个输入并删除alt标记

Tnx

$('.gsmhr')。在('input',function()上{
if($(this.val().length)
$('.gsmslo1').prop('disabled',true).val('.removeAttr(“alt”);
else$('.gsmslo1').prop('disabled',false);
});

这适用于用户输入


如果值是预定义的,则此操作应该有效

您可以循环输入以检查是否设置了任何值,并使用
$(此项)。下一步('.gsmslo1')
以正确的下一个输入为目标:

$('.gsmhr')。在('input',function()上{
if($(this.val().length){
$(this).next('.gsmslo1').prop('disabled',true).val('.removeAttr(“alt”);//禁用并清除其他字段
}否则{
$(this).next('.gsmslo1').prop('disabled',false);
}
});
$('.gsmhr')。每个(函数(){
if($(this.val().length){
$(this).next('.gsmslo1').prop('disabled',true).val('.removeAttr(“alt”);//禁用并清除其他字段
}否则{
$(this).next('.gsmslo1').prop('disabled',false);
}
})

这适用于用户输入


如果值是预定义的,则此操作应该有效
$('.gsmhr')。在('input',function()上{
if($(this.val().length)
$(this).next('.gsmslo1').prop('disabled',true).val('.removeAttr(“alt”);//禁用并清除其他字段
else$(this).next('.gsmslo1').prop('disabled',false);
}).触发(“输入”)

这适用于用户输入


如果值是预定义的,则此操作应该有效

请使用以下代码

$(document).ready(function() {
  function DisableEnableTextbox(currentElement){
      var value = $(currentElement).val();
        if (value.length) {
            $(currentElement).next(".gsmslo1").prop('disabled', true).val('');
        }
        else {
            $(currentElement).next(".gsmslo1").prop('disabled', false);
        }
  }

  $(".gsmhr").on("input", function() {
        DisableEnableTextbox(this);
  });

  $(".gsmhr").each(function(){
    DisableEnableTextbox(this);
  });
});

请参阅

您能清楚地解释一下您需要什么吗?我有大量的输入,如果其他字段有任何值,则需要禁用其中一些输入,但它们不是相邻的,而是分散在整个表单中。一旦用户输入所有字段并进入下一步进行查看,他还可以选择返回并更改任何内容。问题是,即使控制字段的值与用户添加的值相同,这些禁用的字段现在也已启用。只有当用户更改了控制字段中的任何内容时,目标字段才会再次被禁用。我现在明白了,我的问题还不够清楚。很抱歉。虽然代码在这里工作,但在我的产品中不起作用。问题可能是输入不在一起,而是在单独的div中。我更新了小提琴以正确显示我的情况。我还有三个输入需要禁用,但我认为这不是问题所在。@teva将if条件更改为
if($(this).val().length==0)
以检查是否为空,然后禁用您的建议不起作用,但我可以通过在初始代码中添加.trigger来修复它。很好,谢谢你。这里是工作小提琴我试图把你的想法传递到另一个类似的代码,但没有工作。您是否想看看另一个相同的问题,当用户输入任何字段时,所有其他字段都被禁用,但当添加预定义值时,其他字段仍处于活动状态。