2011-05-13 11 views
13

मैं एक फ़ील्ड से मैन्युअल रूप से त्रुटियों को हटाने और त्रुटि मार्कअप को रीसेट करने के लिए एक jquery फ़ंक्शन को कॉल करना चाहता हूं। क्या कोई ऐसा फ़ंक्शन है जो ऐसा करता है जो रीसेटफॉर्म फ़ंक्शन के समान होगा?क्या jquery.validate में कोई फ़ंक्शन है जो एक फ़ील्ड को रीसेट करेगा जैसे रीसेटफॉर्म एक फॉर्म के लिए करता है?

उत्तर

2

this पूरा फ़ॉर्म

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

this केवल name तत्व रीसेट कर देगा रीसेट करता है

$("#skip").click(function() { 
    var rules = $("#name").removeAttrs("min max"); // remove min and max 
    $("#form").submit(); // submit, as there are no attributes, it will not have an error 
    $("#name").attr(rules); // add it again so you can validate it 
}); 
+1

अगर जवाब उपयोगी नहीं है, हमें बताएँ कि कृपया। बिना किसी कारण के डाउनवोट करें ... – balexandre

+0

प्रश्न एक फ़ील्ड से त्रुटियों को हटाने के लिए कहता है: प्रस्तावित समाधान ऐसा नहीं करता है। यह पूरे फॉर्म को मान्य करता है, और मौजूदा त्रुटियों को नहीं हटाता है। –

+0

@ डेविड_001 तो, कोड का दूसरा भाग क्या करता है? यदि आप दस्तावेज़ पढ़ते हैं, तो यह करने का उनका तरीका है ... यदि आप बेहतर जानते हैं, तो आपको अपना उत्तर पोस्ट करना चाहिए और उसके बाद ही मतदान करना चाहिए। – balexandre

4

सत्यापन पुस्तकालय करने के लिए बनाया कुछ भी नहीं मिल सकता है, लेकिन इस हैक काम करता है:

$('#email').removeClass('error').next('label.error').remove(); 
6

आप निम्नलिखित Valida के लिए कर सकते हैं ते एक भी क्षेत्र:

$('#your_field').valid(); 

शायद यह किसी :-)

धन्यवाद में मदद मिलेगी!

+1

एक अच्छा विचार लगता है लेकिन यह मेरे लिए काम नहीं करता है। – Greg

+0

यह मेरे लिए काम किया। लेकिन ध्यान दें कि वैध() कॉल को वैध() सेटअप कहा जाता है या खराब/अजीब चीजें होने से पहले नहीं कहा जाना चाहिए। – ds00424

2

यह कार्यक्षमता focusCleanup: true विकल्प के माध्यम से संभव है और वांछित तत्व पर focusin ईवेंट ट्रिगर कर रहा है। लेकिन यह इस घटना को ट्रिगर करने के लिए हमेशा वांछनीय नहीं है। तो जाहिरा तौर पर, आप प्लगइन के आंतरिक कोड जो focusin पर चल रहा है का उपयोग करें और इसलिए की तरह बाहर से यह आह्वान कर सकते हैं:

/*get your element and containing validated form*/ 
var $that = $('#desired_elemenet'); 
var $form = $that.closest('form'); 

/*get validator object for the form*/ 
var validator = $form.validate(); 

/*use internal code of a plugin to clear the field*/ 
if (validator.settings.unhighlight) { 
    validator.settings.unhighlight.call(validator, $that[0], validator.settings.errorClass, validator.settings.validClass); 
} 
validator.hideThese(validator.errorsFor($that[0])); 
+0

इस समय तत्व को रीसेट करने का यह सबसे साफ तरीका है :) – CodeNotFound

0
var form = $('#form'); 
var validator = form.validate(); 

// Validate single field from that form. 
var myfield = $('#myfield'); 
myfield.removeData('previousValue').removeAttr('aria-invalid'); 
validator.resetElements(myfield);       
संबंधित मुद्दे

 संबंधित मुद्दे