2010-12-28 10 views
3

どうやって控えめなjavascriptでドロップダウンリストを検証できますか?必要なバリデータの検証用テキストボックスとして、ドロップダウンリストでは機能していないのですか?asp.net mvc jqueryドロップダウンの検証

控えめなjsファイルを変更する必要がありますか?ドロップダウンリストを検証するオプションがありますか?

javascriptでform.validate()をチェックしたときにエラーを表示したいと思います。

答えて

0

マークアップ

<p> 
     <label for="ProductCategoryList">Product Categories</label> 
     <%= Html.DropDownList("ProductCategoryList", ViewData["ProductCategories"] as SelectList)%> 
    </p> 

と検証スクリプト

 $.validator.addMethod("selectNone", 
      function (value, element) { 
       return this.optional(element) || element.selectedIndex != 0; 
      }, 
      "Please select an option." 
     ); 


     $(function() { 
      $("#form1").validate({ 
       rules: { 
        ProductCategoryList: { 
         selectNone: true 
        } 

       }, 
       messages: { 
        ProductCategoryList: { 
         selectNone: "This field is required" 
        } 
       } 
      }); 
     }); 
1
$(function() { 
     $("#form1").validate({ 
      rules: { 
       ProductCategoryList: { 
        required: true 
       } 

      }, 
      messages: { 
       ProductCategoryList: { 
        required: "This field is required" 
       } 
      } 
     }); 
    }); 
+0

これで十分です...追加のメソッドを追加する必要はありません... – yogee

0

DropDownListのselecteditemへのバインドに使用されるViewModelのプロパティを作成することで、これが機能します。例では、それを明確にします:ビューの

コード:

 <div class="editor-field"> 
      @Html.DropDownListFor(model => model.SelectedPlantID, 
           new SelectList(Model.Plants, "Value", "Text"), 
           " ", new { id = "ddlPlant" }) 

      @Html.ValidationMessageFor(model => model.SelectedPlantID) 
    </div> 

のViewModelのコードは(強く型付けされたビューに)次のようになります。

  private List<SelectListItem> _plants = new List<SelectListItem>(); 
    [Required] 
    [Display(Name = "Plant")] 
    public List<SelectListItem> Plants 
    { 
     get 
     { 
      return (_plants); 
     } 

     set 
     { 
      _plants = value; 
     } 
    } 

    public Guid SelectedPlantID 
    { 
     get; 
     set; 
    } 

注:SelectedPlantIDあなたのモデルのフィールドである必要はありません。

これはあなたのために働くことを望みます!

+0

ドロップダウンリストで選択されたオプションが空白( "")に設定されていることに注意してください。 – PreethaA

0

最初のオプションをそのまま使用するには、value=""のままにする必要があります。

<asp:ListItem Value="">- Select Something -</asp:ListItem> 
0

あなたが検証にはjQueryを統合したい場合は、フィールドを指定する必要が

使用DropDownListForないDropDownList

@Html.DropDownListFor(c => c.Profile_Id, null, "-- Choose --", new { @class = "input-large" }) 

あなたのリストは、フィールドと同じ名前を持つ場合は、「ドンViewBag.Profile_Is as SelectListを入力する必要があります。これは、リストにnull値を送信すると編集シナリオでは機能しないためです。