2015-06-30 57 views
0

我對同一個字段有兩個驗證,我正在使用jQuery Validator,我想知道如何清除以前生成的錯誤信息。清理以前的JQuery驗證錯誤信息

現在我的問題是,如果我有空字段的錯誤,永遠不會被刪除,如果我有另一個錯誤,如值必須高於10。當值爲7時,仍然顯示「字段不能爲空」。

我對谷歌和所有的建議都是resetForm驗證。

var validator = $("#myform").validate(

); 

validator.resetForm(); 

但是,當然,如果我這樣做,錯誤消息不會顯示。在檢查新聞之前,我只需要清除DOM中以前的錯誤。

任何人都知道另一種直接與DOM交互的方法嗎?

我試着沒有成功。

if ($.validator.defaults.onfocusout) { 
    $(element).unbind(".validate-biggerThanOrigin").bind("blur.validate-biggerThanOrigin", function() { 
     $(element).valid(); 
    }); 
} 

我們正在定義像這樣的驗證。

 $.validator.addMethod("biggerThanOrigin", function (value, element, param) { 
      return biggerThanOrigin(value, element, param, validationMessages.biggerThanOrigin, validationMessages.referenceForkEmpty); 
     }); 

     $.validator.addMethod("lessThanOrigin", function (value, element, param) { 
      return lessThanOrigin(value, element, param, validationMessages.lessThanOrigin, validationMessages.referenceForkEmpty); 
     }); 

問候。

+0

$ window.location.reload(); – Sreejith

+0

reaload整個頁面不是一個選項。其實這是一個對話框 – paul

+0

使用EndRequestHandler/BeginRequestHandler – Sreejith

回答

1

您應該爲錯誤提供單獨的驗證消息。

$("#myform").validate({ 
    rules: { 
    name: { 
    "required": true, 
    "minlength": 10 
    }, 
    messages: { 
    name: { 
     required: "Please specify your name", 
     minlength: "Your name must be atleast 10 characters long" 
    } 
    } 
}); 

這應該適用於您的情況。

編輯:

這裏是一個工作FIDDLE

+0

重新加載對話框中的所有東西,我們有單獨的消息,這不是問題。 – paul

+0

你看到小提琴嗎? –

+0

我的結構不完全相同。當我們初始化我們的驗證器時,我們將添加到$ .validator中.js – paul

0

當你問另一種方法,所以這裏是解決方案。

FIDDLE

$('input').on('keyup', function() { 
    if ($(this).val().length == 0) 
     $('label').text('Field must not be empty'); 
    else if ($(this).val() <= 10) 
     $('label').text('Value must be greater than 10'); 
    else 
     $('label').text(''); 
}); 

這僅僅是一個例子。你可以使用這種方法。 無論如何,謝謝!

+0

不用謝了,jQuery驗證在項目中是強制性的。 – paul

+0

您可以使用答案編號1.其經過充分測試的方法可清除錯誤消息 –