Javascript 检查表单中的每个元素是否已在JQUERY中填写
我有一个包含所有类型表单元素的表单,我有一个代码,它应该运行在每个元素中,并在单击submit按钮后检查它们的值。不幸的是,这段代码并不完全有效。我的意思是,如果我没有在输入中输入任何值,它将打印消息,但是如果我在其中输入一些文本,我们将转到else语句,而不检查其他语句 谁能告诉我为什么Javascript 检查表单中的每个元素是否已在JQUERY中填写,javascript,jquery,html,forms,input,Javascript,Jquery,Html,Forms,Input,我有一个包含所有类型表单元素的表单,我有一个代码,它应该运行在每个元素中,并在单击submit按钮后检查它们的值。不幸的是,这段代码并不完全有效。我的意思是,如果我没有在输入中输入任何值,它将打印消息,但是如果我在其中输入一些文本,我们将转到else语句,而不检查其他语句 谁能告诉我为什么 if($('form.registration-form :input').val() == '') { // Print Error Message } else {
if($('form.registration-form :input').val() == '')
{
// Print Error Message
}
else
{
// Do something else
}
您可以使用此方法:
var emptyElements = $('form.registration-form :input').filter( function() {
return this.value === '';
});
if( emptyElements.length === 0 ) {
// all IS filled in
} else {
// all is NOT filled in
}
$(“#提交”)。单击(函数(){
var emptyElements=$('form.registration-form:input').filter(函数(){
返回此值。值=='';
});
if(emptyElements.length==0){
警报(“全部填充”);
}否则{
警报(“1个或多个未填充”)
}
});代码>
trim()也可以,可能有人输入空格,空格作为空白字符$('form.registration-form:input')
返回所有表单控件,但添加.val()
只返回集合中第一个的值。我将进行2次调整。1:更改$(this).val()!=''代码>到此.value!=''代码>。2:我会让它this.value==''
然后如果(notEmpty.length==0)
。它消除了创建其他jQuery对象的需要。请注意,我也将更改为var名称,因为它没有任何意义。+1。@Karl AndréGagnon谢谢,对于建议,我已经更新了我的答案。哦,谢谢。你帮我节省了很多上网搜索的时间。:)@卡尔·安德烈·加农是的,你是对的!谢谢再次更新。没有更好的地方,我做了一把小提琴,如果你愿意,你可以把它整合到你的答案中: