我想在4个输入字段为空时禁用提交按钮
<input type="text" name="val1" id="val1">
<input type="text" name="val2" id="val2">
<input type="text" name="val3" id="val3">
<input type="text" name="val4" id="val4">
提交按钮
<input name="contact" type="submit" id="contact" value="Update" style="padding:5px" class="sendButton" disabled />
我正在使用
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.sendButton').attr('disabled',true);
$('#val1').keyup(function(){
if($(this).val().length !=0){
$('.sendButton').attr('disabled', false);
}
else
{
$('.sendButton').attr('disabled', true);
}
})
$('#val2').keyup(function(){
if($(this).val().length !=0){
$('.sendButton').attr('disabled', false);
}
else
{
$('.sendButton').attr('disabled', true);
}
})
$('#val3').keyup(function(){
if($(this).val().length !=0){
$('.sendButton').attr('disabled', false);
}
else
{
$('.sendButton').attr('disabled', true);
}
})
$('#val4').keyup(function(){
if($(this).val().length !=0){
$('.sendButton').attr('disabled', false);
}
else
{
$('.sendButton').attr('disabled', true);
}
})
});
</script>
我认为我使用错误。我将所有ID放在一个函数中。
$('#val1','#val2','#val3','#val4').keyup(function(){
此代码不起作用。任何建议。在这些函数中如何使用&和condition(val1&val2&val3&val4)?
答案 0 :(得分:2)
我尝试解决此问题的方法如下:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$("#val1").keyup(function(event) {
validateInputs();
});
$("#val2").keyup(function(event) {
validateInputs();
});
$("#val3").keyup(function(event) {
validateInputs();
});
$("#val4").keyup(function(event) {
validateInputs();
});
function validateInputs(){
var disableButton = false;
var val1 = $("#val1").val();
var val2 = $("#val2").val();
var val3 = $("#val3").val();
var val4 = $("#val4").val();
if(val1.length == 0 || val2.length == 0 || val3.length == 0 || val4.length == 0)
disableButton = true;
$('.sendButton').attr('disabled', disableButton);
}
</script>
这样,如果您以后打算添加更多输入,则将只有一个地方可以检查逻辑,而不必将其维持在N个位置。还有一个更好的解决方案是为您的输入提供相同的类,以便您可以执行
$(".myInputs").keyup(function(event){
validateInputs();
});
这是一个jsFiddle示例:https://jsfiddle.net/moj2dnup/
答案 1 :(得分:0)
您可以使用pattern attribute,也需要使用required attribute,否则将从constraint validation中排除具有空值的输入字段。这将阻止您提交表单,但是不会禁用您的按钮。
示例:
<input pattern=".{5,}" required title="5 character minimum">
<input pattern=".{5,10}" required title="between 5 and 10 characters">
答案 2 :(得分:0)
$(document).ready(function(){
$('.sendButton').attr('disabled',true);
$('.txtValues').keyup(function(){
var checkNull=false;
$('.txtValues').each(function(index,input){
if($(this).val().length !=0)checkNull=true;
});
if(checkNull){
$('.sendButton').attr('disabled', false);
}else{
$('.sendButton').attr('disabled', true);
}
});
});
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="text" name="val1" id="val1" class="txtValues">
<input type="text" name="val2" id="val2" class="txtValues">
<input type="text" name="val3" id="val3" class="txtValues">
<input type="text" name="val4" id="val4" class="txtValues">
<input name="contact" type="submit" id="contact" value="Update" style="padding:5px" class="sendButton" disabled />
对所有输入使用通用的CSS类。使用$ .each遍历输入,并检查所有值是否为空。