我正在尝试使用JQuery检查表单中的所有输入是否已填充。观众点击一个按钮,如果输入已经填满,就会发生很酷的事情。但是,如果其中一个字段尚未填充,则查看者需要获取自定义警告消息。我想我差不多了,但我需要一些帮助。
$(function() {
$("#btn_click").click(function() {
if( $("input").val() == 0 ) {
$("form").append('<span class=".warning">You didn\'t fill out all the fields!</span>');
}
else {
//Some cool stuff happens
}
});
});
当我没有填写任何输入时,我会收到警告的预期行为。非常好。但是,如果我填写第一个输入并将所有其他输入留空,那么“酷的东西”就会运行。那很糟。我希望警告显示任何输入是否留空。如何让JQuery测试所有输入?
答案 0 :(得分:2)
$(function() {
$("#btn_click").on('click',function(e) {
e.preventDefault();
$("input").each(function(){
if(!$(this).val()){
//error message
return false;
}else{
//remaining code
}
});
});
});
答案 1 :(得分:1)
您可以为每个输入元素添加ID,然后使用Jquery检查是否有任何空白然后显示 错误消息,否则做你很酷的东西
答案 2 :(得分:0)
$('input').val()
只会检索第一个输入的值。如果你想检查所有输入,你应该用each
检查所有输入(只是一个例子,你可以使用其他东西):
$('btn_click').on('click', function (e) {
e.preventDefault(e) ;
var allOk = true ;
$('input').each(function () { // Iterate over input
if (!$('input').val()) { // Don't check against 0
allOk = false ; // If the input isn't ok
}
}) ;
if (!allOk) {
// Warning message
}
else {
// Some cool stuff
}
}) ;
答案 3 :(得分:0)
尝试$("input").filter(function(){return this.value==''}).length > 0
或更好,因为你已经在使用jQuery使用一些复杂的验证插件
答案 4 :(得分:0)
您可以使用以下方式检查:
if ($("input").length != $('input').filter(function () {
return $.trim(this.value)
}).length) {
/* not all inputs filled */
}