-3

JavaScriptチェックについて質問があります。

私は次のフォームを持っています

<form name='form' id='form' method='post' action='next.php'>

<input type='text' class='red'  />
<input type='text' class='red'  />
<input type='text' class='red'  />
<input type='text' class='blue' />
<input type='text' class='blue' />
<input type='submit' value='Next' />

</form>

私が達成したいのは、クラス「赤」のフィールドのいずれかが入力されている場合にのみフォームを送信できることです。そのため、ユーザーが 1 つ以上のクラス「青」フィールドにのみ入力すると、少なくとも 1 つのクラス「赤」フィールドにも入力する必要があるという警告が表示されます。

4

7 に答える 7

1

フォームの送信イベントに接続し、その中ですべてのフィールドをクラス red で反復処理し、結果を返すことができます。submit イベントが false を返した場合、フォームは送信されません

$("#form").submit(function(){
   var exist = false;
   $(this).find("input.red").each(function(){
          exist = exist || this.value;
   });
   return exist;
})

これは、すべての空白値が入力済みフィールドとして扱われることを前提としています。そうでない場合は.trim()、値が必要です。

exist が true に設定されている場合、バージョンは早期に終了するように作成できますが、要素の数が少ない場合は大幅に速くなる可能性は低いです

于 2013-06-06T10:29:00.823 に答える
0
$("#submit").click(function() {
    var exist ;

    $("#formId input[type=text]").each(function() {
        if($(this).hasClass('red')) 
         if($(this).val() != "") 
            exist = true;             
    });

    if(exist == true) {
        // red class exist
    } else {
        alert("No Red Class");
        return false;
    }
});
于 2013-06-06T10:17:47.747 に答える
0

これはあなたが達成しようとしていることですか?

  var failed = false;
  $(".red").each(function(i, elem){
     if($(elem).val() == ""){
        failed = true;
        return false;
     }
  });

  if (failed){
  //don't proceed
  }

redクラスの入力の 1 つが空の文字列の場合は続行されません

于 2013-06-06T10:19:52.473 に答える