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

フォームがあり、入力は必要ありませんが、入力が選択されていない場合は、少なくとも1つのオプションを選択するようにアラートで通知する必要があります。

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');

フォームIDがrequestFormフォームセレクターとして使用されている場合:

$('#requestForm :input').filter(function() {
    ...
于 2012-05-02T12:28:06.487 に答える
1

現在の回答はどちらも、条件が満たされるとすぐに短絡の恩恵を受けません。これはおそらく、JavaScriptの限られた数のフィールドのパフォーマンスにわずかな影響を与えるだけです。しかしまた、どちらも、あなたが入っているループの意図を宣言的に述べるのは得意ではありません。

これは、任意のフィルター基準を取り込んで、何かがその基準に一致するとすぐにtrueを返す単純な4行の拡張メソッドです。

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

これにより、少なくとも1つの入力が空の場合、メッセージが1回警告されます。次に、関数onclickを送信入力またはフォームを検証するボタンに追加するだけです。

<input type="submit" onclick="check();">
于 2013-06-20T16:01:42.203 に答える