Jquery检查表单以查看是否有任何输入值

时间:2012-05-02 12:25:55

标签: jquery

if ($('#requestForm').val == "") {
alert('Please select at least one filter');
    //return false;
}
else { 
    ///Run my code
}

我有一个表单,不需要任何输入,但如果没有选择输入,我想要一个警告告诉他们至少选择一个选项。

5 个答案:

答案 0 :(得分:6)

var validate= false;
$('#requestForm input').each(function(){
    if($(this).val() != '' || $(this).attr('checked'))
        validate = true;
});
if(!validate){
    alert('Please select at least one filter');
    return false;
}
else { 
    Run my code
}

答案 1 :(得分:5)

var isValid = !!$('form :input').filter(function() {
    return this.value;
}).length;​

if (!isValid)
    alert('Please select at least one filter');

如果表单ID为requestForm,请将其用作表单选择器:

$('#requestForm :input').filter(function() {
    ...

答案 2 :(得分:1)

当条件满足时,目前的答案都不会受益于短路。对于JavaScript中的有限数量的字段,这可能只是对性能的轻微打击。但是,在声明性地陈述你正在进入的循环的意图时,两者都不是很好。

这是一个简单的4行扩展方法,它接受任何过滤条件,并在符合条件时立即返回true。

jQuery.fn.any = function(filter){ 
    for (i=0 ; i<this.length ; i++) {
     if (filter.call(this[i])) return true;
  }
  return false;
};

然后像这样使用它

var gotMatch = $(":input").any(function() { 
                   // you can put any condition you want in here
                   return this.value == 'hi';
               });

&#13;
&#13;
jQuery.fn.any = function(filter){ 
	for (i=0 ; i<this.length ; i++) {
  	 if (filter.call(this[i])) return true;
  }
  return false;
};

$(function() {
	
  var gotMatch = $(":input").any(function() { 
                   return this.value == 'hi';
                 });

  if (gotMatch) {
    console.log("Hello to you too!");
  } else {
  	console.log("Why don't you say Hi!");
  }
  
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
&#13;
&#13;
&#13;

Demo in jsFiddle

进一步阅读:

答案 3 :(得分:0)

我不太清楚你想要实现什么,但也许你可以找到有用的

https://github.com/maxatwork/form2js

它是一个将结构化表单数据转换为Javascript对象的库。 你只需这样做

var obj = form2js("requestForm");

然后解析结果并在没有选择任何内容时警告用户。

答案 4 :(得分:0)

check = function()
    {                
var empty = $("#requestForm :input").filter(function() {
return this.value == ""; });
if(empty.length) {
alert("Please select at least one filter");
};}

如果至少有一个输入为空,这将提示消息ONCE。然后只需将函数onclick添加到您的提交输入或任何要用表单验证表单的按钮。

<input type="submit" onclick="check();">