2016-12-11 13 views
1

このコードでは、Webページ上で車の1つ以上のモデルをグラフィカルに選択できます。私は、複数選択されているかどうかを確認する必要があります。選択したアイテムの数をカウントする方法と、それが1つのアラート(「何か」)よりも大きい場合はどうすればよいですか?要するに、ここではLexusとInifitiの両方がサンプルコードで選択されているかどうかを知る必要があります。私は本当にカウントが必要なので、1より大きい場合は選択します。どんな援助も大変高く評価されています。jqueryを使用して複数のアイテムが選択されている場合に妥当性確認

<div class="options-item-wrapper clearfix"> 
    <?php 
    $modelOptions = array(
     0 => array('title' => 'Lexus'), 
     1 => array('title' => 'Infiniti') 
    ); 

    foreach ($modelOptions as $modelOption) { 
     $selected = ''; 
      $optionValue = ''; 

     if(in_array($modelOption['title'], $modelArray)) { 
      $selected = 'selected'; 
      $optionValue = '<input class="vehicle-option" 
      type="hidden" name="model[]"  
      value="'.$modelOption['title'].'">'; 
     } 

     echo '<div class="options-item '.$selected.'" data-vehicle="'. 
     $modelOption['title'].'"> 
     <div>'.$modelOption['title'].'</div> 
     '.$optionValue.' </div>'; 
    } 
    ?> 
    </div> 

私はこれを試してみましたが、これまで運:非表示の入力要素が選択状態を持っていないので、

var checkedNum = $('input[name="model[]"]:selected').length; 
    alert(checkedNum); 
    if (checkedNum > 1) { 
     alert('Validating the form2'); 
     // User didn't check any checkboxes 
    } else { 
     die(); 
    } 
+0

PHPの代わりに結果のHTMLを投稿する必要があります。 –

+0

あなたの働くことが助けになるかもしれません。 – ScanQR

+1

@Mike Qおそらくこれが助けになるでしょうか? https://jsfiddle.net/6Loyke7b/1とにかく、あなたがチェックボックスを使っているなら、 ':selected'ではなく':checked'が必要だと思います。私は後者がドロップダウンのためだと信じています。 –

答えて

2

あなたのコードは動作しません。

あなたのコードを正しく理解していれば、選択されていれば、オプション項目に 'selected'クラスを追加します。選択したクラスでオプション項目の数を数えればいいのではないでしょうか?

var checkedNum = $('.options-item.selected').length; 
alert(checkedNum); 
if (checkedNum > 1) { 
    alert('Validating the form2'); 
    // User didn't check any checkboxes 
} else { 
    die(); 
} 
+0

これは完璧に機能しました...キーワード検索を使用する場合は、1つのアイテムのみを選択するようにユーザーに指示できます。ありがとうございました –

関連する問題