2016-09-13 55 views
0

在我的MVC 5應用程序中,我有一個帶有下拉列表和一些必填字段的表單。當下拉選擇發生變化時,我需要更改這些字段的屬性。根據下拉列表選擇使字段不需要MVC 5

我有這個枚舉

public enum OrderKind 
{ 

    Market, 
    Research, 

} 

從我填的下拉列表。我已經使用JavaScript來顯示或隱藏工作的領域。

東西作爲

$(function() { 

    $('#orderkind').change(function() { 
      var value = $(this).val(); 
      if (value == "Market") { 
       $(datefrom).hide(); 
       $(datefrom).hide(); 
       $("#fromDate").attr("required", false); 
       $("#toDate").attr("required", false); 
    else if (value == "Research") { 
       $(datefrom).show(); 
       $(datefrom).show(); 
       $("#fromDate").attr("required", true); 
       $("#toDate").attr("required", true); 
       fromDate.setCustomValidity('Please Fill the date from field'); 
       toDate.setCustomValidity('Please Fill the date to field'); 
      } 

但它使日期字段總是必需的,即使他們填它顯示的消息。 有沒有辦法檢查Controller的下拉列表值? 謝謝!

+0

首先修復語法錯誤,然後使用'.prop ()'而不是'.attr()' – Satpal

+0

考慮一個[萬無一失](http://foolproof.codeplex.com/)'[RequiredIf]'或類似的條件驗證屬性,這樣你就可以同時獲得客戶端和服務器端的有效性開箱即用 –

+0

Satpal,謝謝你的回覆,我用你的建議,但沒有任何改變。它總是顯示消息。 – touinta

回答

-1

試試這個代碼,希望這有助於

$(function() { 

$('#orderkind').change(function() { var value = $(this).val(); if (value == "Market") { $(datefrom).hide(); $(datefrom).hide(); $("#fromDate").removeAttr('required'); $("#toDate").removeAttr('required'); else if (value == "Research") { $(datefrom).show(); $(datefrom).show(); $("#fromDate").attr('required', 'required'); $("#toDate").attr('required', 'required'); fromDate.setCustomValidity('Please Fill the date from field'); toDate.setCustomValidity('Please Fill the date to field'); } });

+0

我的代碼的區別在哪裏?括號?我已經擁有了它們。我只是沒有做好貼。謝謝 – touinta

+0

$(「#fromDate」)。removeAttr('required');這裏改變。 – Dhruti

+0

它不起作用,它總是要求日期。謝謝 – touinta

0

我覺得你有你的枚舉改變

public enum OrderKind 
{ 
    Market = 1, 
    Research = 2, 
} 

然後,值綁定到你的下拉列表中add external (default)值。

0

給一個ID,你的形式像下面

using (Html.BeginForm(null, null, FormMethod.Post, new { id = "formID" })) 
    { } 
jQuery中

$("#formID").submit(function(e){ 
//your checking 
//you can prevent form submission here like 
e.preventdefault() 
//and you can show validation error for dropdown list or show as alert 
}); 

您可以設置驗證錯誤jQuery的像this

+0

感謝您的回覆。我添加你的代碼,但我的支票不起作用。我的意思是我必須根據下拉列表顯示和隱藏一些字段。 – touinta

相關問題