Javascript 根据输入值启用/禁用jQuery按钮?

Javascript 根据输入值启用/禁用jQuery按钮?,javascript,jquery,html,Javascript,Jquery,Html,这是我创建的测试,如何将按钮禁用或启用应用于两个输入?如您所见,下面的代码仅适用于“.link\u address”。我设置了keyup,因为一旦加载dom,我们仍然需要检查天气输入是否为空。我做错了什么?我试着用foreach检查“input\u fields\u wrap”下的所有输入,也许我设置错误,但也不起作用 $(文档).ready(函数(){ $('.confirm btn').attr('disabled',true); var valid_check=$('.link_addr

这是我创建的测试,如何将按钮禁用或启用应用于两个输入?如您所见,下面的代码仅适用于“.link\u address”。我设置了keyup,因为一旦加载dom,我们仍然需要检查天气输入是否为空。我做错了什么?我试着用foreach检查“input\u fields\u wrap”下的所有输入,也许我设置错误,但也不起作用

$(文档).ready(函数(){
$('.confirm btn').attr('disabled',true);
var valid_check=$('.link_address')| |$('.link_name');
有效的\u check.keyup(函数(){
if($(this).val().length!=0){
$('.confirm btn').attr('disabled',false);
}否则{
$('.confirm btn').attr('disabled',true);
}
})
});

文件
添加更多字段

您当前的语句是
var valid_check=$('.link_address')|$('.link_name')

记住,
|
是一个Javascript构造,而不是某种jQuery魔法。当与jQuery一起使用时,它没有特殊的组合能力,它只意味着它一直以来的含义:逻辑的
比较

因此,您的意思是“如果
$('.link\u address')
是真实值,请将
有效检查设置为该值。如果不是,请将
有效检查设置为
$('.link\u name')
”。但是,jQuery对象总是真实的,因此它永远不会用该表达式接触
$('.link_name')

jQuery有自己的方式将多个选择器组合到一个对象中,我在下面演示了这一点。(另外,您希望使用
prop
而不是
attr
,请相信我)。
$(文档).ready(函数(){
$('.confirm btn').attr('disabled',true);
var valid_check=$('.link_address,.link_name');
有效的检查键(函数(){
如果($('.link\u address').val().length!=0&($('.link\u name').val().length!=0){
$('.confirm btn').prop('disabled',false);
}
否则{
$('.confirm btn').prop('disabled',true);
}
})
});

文件
添加更多字段

您当前的语句是
var valid_check=$('.link_address')|$('.link_name')

记住,
|
是一个Javascript构造,而不是某种jQuery魔法。当与jQuery一起使用时,它没有特殊的组合能力,它只意味着它一直以来的含义:逻辑的
比较

因此,您的意思是“如果
$('.link\u address')
是真实值,请将
有效检查设置为该值。如果不是,请将
有效检查设置为
$('.link\u name')
”。但是,jQuery对象总是真实的,因此它永远不会用该表达式接触
$('.link_name')

jQuery有自己的方式将多个选择器组合到一个对象中,我在下面演示了这一点。(另外,您希望使用
prop
而不是
attr
,请相信我)。
$(文档).ready(函数(){
$('.confirm btn').attr('disabled',true);
var valid_check=$('.link_address,.link_name');
有效的检查键(函数(){
如果($('.link\u address').val().length!=0&($('.link\u name').val().length!=0){
$('.confirm btn').prop('disabled',false);
}
否则{
$('.confirm btn').prop('disabled',true);
}
})
});

文件
添加更多字段

当前您有
var valid_check=$('.link_address')|$('.link_name')

这意味着您的变量(
valid\u check
)将包含一个或另一个的句柄。由于总是找到第一个,因此不会执行(通过)或部分

因此,事件侦听器仅应用于第一个元素(输入),而从不应用于第二个元素

您可能需要更改选择器,使其适用于要考虑验证的所有字段。我使用了
$(“输入”)
,但如果需要,可以更具体一些

比如:

$(文档).ready(函数(){
//从禁用按钮开始
$('.confirm btn').attr('disabled',true);
$(“.input\u fields\u wrap>input”).on('keyup',function(){
//将所有的输入都输入到一个数组中
var inputList=$(“.input\u fields\u wrap>input”);
//检查是否有一个值长度为0(即无输入)
var isDisabled=inputList.toArray().some(f=>$(f.val().length==0);
//立即启用/禁用按钮
$('.confirm btn').attr('disabled',isDisabled);
})
});


添加更多字段
当前您有
var valid_check=$('.link_address')|$('.link_name')

这意味着您的变量(
valid\u check
)将包含一个或另一个的句柄。由于总是找到第一个,因此不会执行(通过)或部分

因此,事件侦听器仅应用于第一个元素(输入),而从不应用于第二个元素

您可能需要更改选择器,使其适用于要考虑验证的所有字段。我使用了
$(“输入”)
,但如果需要,可以更具体一些

比如:

$(文档).ready(函数(){
//从禁用按钮开始
$('.confirm btn').attr('disabled',true);
$(“.input\u fields\u wrap>input”).on('keyup',function(){
//将所有的输入都输入到一个数组中
var inputList=$(“.input\u fields\u wrap>input”);
//检查是否有一个值长度为0(即无输入)
var isDisabled=inputList.toArray().some(f=>$(f.val().length==0);
//立即启用/禁用按钮
$('.confirm btn').attr('disabled',isDisabled);
})
});


添加更多字段
以下是您可以执行的操作:

注意
.inp