2014-05-14 75 views
0

我拉我的頭髮。對於所有意圖和目的,我認爲這應該起作用。我只想驗證,如果某個單選按鈕被選中,隱藏的字段就會有一個值。jquery驗證依賴於特定的單選按鈕被選中

下面是我得到了什麼:

$("#myform").validate({ 
     ignore: "", 
     rules: { 
      MaritalStatusDate: { 
       required: { 
        depends: function() { 
         return $("input[type='radio'].maritalStatusRadio:checked").val() != '1'; 
        } 
       } 
      } 
     }, 
     messages: { 
      MaritalStatusDate: { 
       required: "You must enter a marital status date" 
      } 
     } 
    }); 

MaritalStatusDate是我的隱藏字段的名稱/ ID。我已經嘗試了大約100次不同的代碼迭代,並且每次都提交表單。

有什麼想法?

編輯:添加html。

<script src="/Scripts/jquery-2.0.3.min.js"></script> 
    <script src="/Scripts/jquery.validate.1.11.1.min.js"></script> 
    <script src="/Scripts/jquery.validate.unobtrusive.min.js"></script> 

     <form action="/cont/meth" id="myform" method="post"> 
     <input class="maritalStatusRadio" data-val="true" data-val-required="The MaritalStatusAnswer field is required." id="maritalStatus_1" name="MaritalStatusAnswer" type="radio" value="1" /> 
     <input class="maritalStatusRadio" id="maritalStatus_2" name="MaritalStatusAnswer" type="radio" value="2" /> 
     <input class="maritalStatusRadio" id="maritalStatus_3" name="MaritalStatusAnswer" type="radio" value="3" /> 
     <input class="maritalStatusRadio" id="maritalStatus_4" name="MaritalStatusAnswer" type="radio" value="4" /> 
     <input data-val="true" data-val-date="The field MaritalStatusDate must be a date." id="MaritalStatusDate" name="MaritalStatusDate" type="hidden" value="" /> 
    <input type="submit" value="go" /> 
     </form> 
+0

包括相關的HTML標記! – Sparky

+0

如果您不想忽略任何內容,應該'ignore:[]'。 – Sparky

+0

'=「1」'爲什麼把一個數字放入一個字符串中? –

回答

1

沒有顯示你的HTML標記,我只是猜測,這是它的外觀...

<form id="myform"> 
    <input type="hidden" name="MaritalStatusDate" /> 
    <input type="radio" name="radio" value="1" class="maritalStatusRadio" /> 
    <input type="radio" name="radio" value="0" class="maritalStatusRadio" /> 
    <input type="submit" /> 
</form> 

在這種情況下,這個工程......

depends: function(element) { 
    return !($("input[type='radio'].maritalStatusRadio[value='1']").is(":checked")); 
} 

DEMO: http://jsfiddle.net/nVc2N/


附註:如果您不想忽略任何內容,那麼確實應該是ignore: []

請參閱:https://stackoverflow.com/a/8565769/594235

+0

你的jsfiddle確實有效,但它仍然不能解決我的問題。我已經添加了我的html。你能看到它的任何問題嗎?我也更新了你所擁有的依賴函數。 –

+0

@ChristopherJohnson,你的HTML也似乎工作:http://jsfiddle.net/nVc2N/1/ – Sparky

+0

你是對的。除此之外,還有什麼可以絆倒我呢?我已經將我的腳本引用添加到了HTML部分中的OP中。 –