if ($('#requestForm').val == "") {
alert('Please select at least one filter');
//return false;
}
else {
///Run my code
}
我有一个表单,不需要任何输入,但如果没有选择输入,我想要一个警告告诉他们至少选择一个选项。
答案 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';
});
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;
.has()
.filter()
答案 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();">