2012-06-08 57 views
0

我目前正在處理此問題; http://www.geektantra.com/2009/09/jquery-live-form-validation/jQuery表單驗證;如果選中複選框,則需要輸入字段

我想添加驗證,所以如果用戶檢查位置框,必須要求「L2」字段。我怎樣才能實現這個插件?我需要混合複選框表達式嗎?

expression: "if (isChecked(SelfID)) return true; else return false;", 

這裏的插件功能

<script type="text/javascript"> 
      jQuery(function(){ 
       jQuery("#v1").validate({ 
        expression: "if (VAL) return true; else return false;", 
        message: "Please enter your name" 
       }); 
      }); 
</script> 

這裏的形式

<form method="post" id="contactform" action="/form.php" > 
<h5>Category:</h5> 
<p><input type="checkbox" name="Location" value="Checked" onclick="toggle_visibility('f1');"> <span class="a1">- Location</span><br><div id="f1" style="display:none">Where are you located?<br /><input name="L2" id="L2" type="text" /></div></p> 

<h5>Name:</h5> 
<p><input name="Name" id="v1" type="text" /></p> 
<p><div><input name="submit" type="submit" value="Submit"/></div></p> 
</form> 
+0

使用取決於選項。您可以在jQuery驗證 - 選項頁面上閱讀它。 – Jules

+0

我會使用'addEventListener'和'attachEvent'來代替inline'on'屬性。 –

+0

@Jules我很新的Java,我檢出了依賴項選項,添加此ID與內聯'美元(「#位置」)。 });」我想知道,因爲我使用geektantra這個插件,這會對功能如何產生影響嗎? – Jake

回答

3

你的意思是:

rules: { 
     fieldName: { 
     required: {  
      depends: function() { 
      return $("input[name='checkbox']:checked") 
      } 
     } 
     } 
    } 
+0

我是一個JavaScript的新手,可以使用插件嗎?我嘗試了一個測試'$(「#myinput」)。rules(「add」,{minlength:2});'但這似乎並沒有工作 – Jake

+0

或可以試試這個'$(「input [name ='checkbox']」)。is(「:checked」)'和remove * element * un-used variable – mumair

0

蘇德赫的答案是正確的。你所要做的就是在初始化驗證時使用它作爲選項。

var opt = {};//copy from Sudhir's post of course change the field name as required. 
$("form").validate(opt); 
1

出於某種原因蘇德赫的回答並沒有爲我工作 - 我不得不修改:

rules: { 
    fieldName: { 
    required: {  
     depends: function(element) { 
     return $("input[name='checkbox']:checked").length == 1 
     } 
    } 
    } 
} 
相關問題