2012-03-08 8 views
0

私のASP.NET MVCアプリケーションでは、複数のオプションを選択する選択タグ付きのビューがあります。複数選択のためのjQueryのvalidationruleを追加

デフォルトでは(ページが読み込まれるとき)、私は選択肢にオプションがありません。いくつかのアクションから、selectにオプションが設定されていて、これはうまく動作します。

フォームを送信するときに、選択肢にオプションがあるかどうかをチェックしたい場合は、フォームにサブミットするときに少なくとも1つのオプションが必要です。選択肢にオプションがあるかどうかを確認する必要はありません。

<select multiple="multiple" style="width:200px;" id="PersonnelClasses" 
       name="PersonnelClasses"></select> 

とjQueryコード:今すぐ

$("#PersonnelClasses").rules("add", { 
    required: true 
}); 

、ルールは選択がそのリスト内の任意のアイテムを持っているかどうかを確認するためにどのように見えるかこれは私がこれまで持っているものでしょうか?私はSOやjQueryのドキュメントでは何も解決策を見つけられませんでした。

更新:

コードの選択にオプションを追加するための:

this.addPersonnelClass = function() { 
     $('#selectablePersonnelClasses :selected'). 
      each(function (value, item) { 
      $('#PersonnelClasses') 
       .append($('<option></option>') 
       .val(item.value) 
       .html(item.text)); 
    }); 
}; 
+0

あなたの質問に機能を置かないでください(このクリックは、Webページがロードされており、ユーザーが選択を埋めた後に行わアクションです)あなたのコードに基づいてかなり曖昧です。あなたの 'select'タグの見た目は本当ですか?あなたのコントローラとあなたの意見の残りの部分はどうですか?選択肢に動的に追加オプションが追加されていますか? – gideon

+0

これはまさに私のセレクトタグの外観です。私は他のコードは重要ではないと思います。私のコントローラでは、FormCollectionを介してフォームデータを取得するだけです。ビューの残りの部分(送信ボタンを除く)は、2番目の選択と、1番目の選択に項目を追加するボタンで構成されています。これはいくつかのjQueryコードで起こりますが、バリデーションとは関係ありません。 – Abbas

+0

'select'オプションはどのように変わるのですか? – gideon

答えて

1

私はそれを理解し、ページがロードされ、ユーザーは物事のカップルをクリックして、選択がありますオプションで動的に埋められます。あなたが望むのは、更新された後にオプションの数を得ることです。この例では、ボタンをクリックする各選択時にオプションの量をチェックし

<html> 
<head> 
    <script src="js/jquery.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      function checkLength(){ 
       alert($('#PersonnelClasses option').length); 
      } 
     </script> 
</head> 
<body> 
<form NAME="myform" ACTION="" METHOD="GET"> 
    <select multiple="multiple" style="width:200px;" id="PersonnelClasses" name="PersonnelClasses"> 
     <option>bla</option> 
     <option>lala</option> 
     <option>lolo</option> 
     <option>l4</option> 
    </select> 
    <input type="button" name="mysubmit" onClick="checkLength()" value="Click" /> 
</form> 
</body> 
</html> 
  • は、次のコードを見てみましょう。

  • は(それ以外の機能が見つからない)document.ready機能
+0

これは私が最初に探していたものではなく、jQueryの検証ルールを探していましたが、別のjQuery関数で動作するようにソリューションを調整しました。あなたの回避策は十分です。.. :) – Abbas

関連する問題