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

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

4

5 回答 5

8
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
}
于 2012-05-02T12:39:57.397 回答
5
var isValid = !!$('form :input').filter(function() {
    return this.value;
}).length;​

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

如果表单 idrequestForm将其用作表单选择器:

$('#requestForm :input').filter(function() {
    ...
于 2012-05-02T12:28:06.487 回答
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';
               });

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!");
  }
  
})
<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="">

jsFiddle 中的演示

延伸阅读:

于 2017-04-07T15:36:38.583 回答
0

我不太清楚你想要实现什么,但也许你会发现这个有用

https://github.com/maxatwork/form2js

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

var obj = form2js("requestForm");

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

于 2012-05-02T12:36:07.947 回答
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();">
于 2013-06-20T16:01:42.203 回答