2014-03-04 34 views
0

有沒有辦法在jQuery驗證器中解除規則?jQuery驗證插件,取消綁定單規則?

假設我有:

$('#myform').validate({ 
      rules: { 
       field1: { 
        required: true 
       }, 
       field2: { 
        required: true 
       } 
      } 
     }) 

我要的是,當我完成驗證它必須解除綁定字段2

+0

試試這個$(<#field2 id>).rules(「remove」,「required」); – Akhlesh

+0

表單的相關HTML標記在哪裏? – Sparky

+0

我不明白驗證後刪除規則的要點。那背後有什麼想法? – Sparky

回答

1
$('#myform').validate({ // initialize the plugin 
    rules: { 
     field1: { 
      required: true 
     }, 
     field2: { 
      required: true 
     } 
    } 
}) 

您將使用the .rules() method從指定的輸入中刪除所有驗證規則。

$('input[name="field2"]').rules('remove') 

我不知道我明白你爲什麼需要刪除成功驗證後,由規則,但你可以測試編程方式使用the .valid() method形式,然後刪除該規則。

if ($('#myform').valid()) { // if the form is valid 
    $('input[name="field2"]').rules('remove'); // then remove the rules 
} 

.valid()將立即測試的形式,返回根據驗證狀態的布爾truefalse

0

使用$( 「#域2」)的規則(「刪除。 」, 「需要」)

$("#commentForm").validate({ 
rules: { 
    field1: { 
     required: true 
    }, 
    field2: { 
     required: true 
    } 

} 
}); 

//To remove rule after submitting it will be removed 
$('#commentForm').submit(function() { 
    $(this).validate(); 
    $("#field2").rules("remove", "required"); 
}); 

http://jsfiddle.net/Af9a9/3/

+0

您正在做一個大的假設,即OP在輸入上具有'id'屬性,並且它與'name'屬性具有相同的值。你應該很清楚,只要OP的輸入包含屬性id =「field2」',你的代碼就會工作。另外,在提交處理程序中第二次調用'.validate()'什麼都不做。 '.validate()'方法在第一次初始化後總是被忽略。 – Sparky

+0

我剛纔展示瞭如何解除驗證的方式,並且在任何時候您可以根據需求更改選擇器後,所有的id都只是一個選擇器。 順便說一句感謝這額外的信息。 – Akhlesh