jQuery मान्य प्लगिन - एकल क्षेत्र का ट्रिगर सत्यापन


90

मुझे एक ऐसा रूप मिला है जो वैकल्पिक रूप से फेसबुक कनेक्ट के माध्यम से पूर्व-आबाद हो सकता है। जब कोई उपयोगकर्ता कनेक्ट हो जाता है, तो उनका नाम और ईमेल स्वचालित रूप से भर जाता है। समस्या यह है कि यह जांचने के लिए रिमोट सत्यापन को ट्रिगर नहीं करता है कि क्या ईमेल पहले से मौजूद है।

क्या कोई रास्ता है जो मैं उस क्षेत्र पर सत्यापन को अकेले कह सकता हूं? कुछ इस तरह:

$('#email-field-only').validate()

विचार होगा। बिना किसी भाग्य के डॉक्स के माध्यम से खोजा।

जवाबों:


147

यह विधि आपको वही करना चाहिए जो आप चाहते हैं:

$('#email-field-only').valid();

4
नोट: फॉर्म एलिमेंट नेम भी इस फंक्शन के साथ काम करता है, यानी $('input[name=email-field-only]').valid();काम भी करता है
Raptor

1
समस्या क्या है? जब मैं इस विधि का उपयोग करता हूं तो मेरा सत्यापन टूट जाता है
nakajuice

2
यह समाधान सभी फ़ील्ड के लिए त्रुटि संदेश दिखाते हुए, पूरे फ़ॉर्म को मान्य करता है।
पाब्लो

@haemhweg, शायद आप फोन नहीं किया .validate () का उपयोग करने के प्रयास करने से पहले विधि .valid () ? डॉक्स: jqueryvalidation.org/valid
userfuser


24

उपयोग करें Validator.element():

किसी एकल तत्व की पुष्टि करता है, यदि यह वैध है, तो सही है।

यहाँ एपीआई में दिखाया गया उदाहरण है:

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

.valid()संपूर्ण फ़ॉर्म को मान्य करता है, जैसा कि अन्य ने इंगित किया है। एपीआई का कहना है:

जाँचता है कि क्या चयनित प्रपत्र मान्य है या सभी चयनित तत्व मान्य हैं या नहीं।


20

किसी कारण से, कुछ अन्य तरीके तब तक काम नहीं करते हैं जब तक कि क्षेत्र को केंद्रित / धुंधला / परिवर्तित नहीं किया गया है, या एक सबमिट करने का प्रयास किया गया है ... यह मेरे लिए काम करता है।

$("#formid").data('validator').element('#element').valid();

इसे खोजने के लिए jquery.validate स्क्रिप्ट के माध्यम से खुदाई करनी थी ...


1
यह मेरे लिए काम किया है, मैं भी .valid()अंत में जोड़ा तो यह मेरे लिए देखा मुझे $("#Form").data('validator').element('input[name=__Suburb]').valid(); विश्वास है कि अगर आप इसे आईडी द्वारा चयन नहीं करते हैं तो यह आवश्यक हो सकता है।
मिहाई पी।

2
मुझे नहीं लगता .valid()कि अभिव्यक्ति के अंत में संबंधित हैं। .element()(समारोह एक बूलियन परिणाम देता है डॉक्स | src )। जब मैं कॉल करने की कोशिश करता हूं .valid () मुझे त्रुटि संदेश मिलता है: "$(...).data(...).element(...).valid
अनकैप्ड टाइपर्रर

क्या आपने फॉर्म में सत्यापनकर्ता को संलग्न किया था? जब से मैंने JQuery सत्यापन का उपयोग किया है तो कुछ साल हो गए हैं ... इसलिए इसके लिए API बदल गया हो सकता है। उस समय मुझे उपरोक्त को खोजने के लिए इंटर्नल के माध्यम से काम करना पड़ा। यह प्रलेखन में प्रकाशित नहीं किया गया था इसलिए संरचना अच्छी तरह से बदल सकती है क्योंकि मैंने आखिरी बार देखा था।
ट्रैकर 1

16
$("#FormId").validate().element('#FieldId');

2
मैं इस विधि को पसंद करता हूं, यह एक अच्छा 1 लाइनर है। महान काम करता है, धन्यवाद।
एंडी

1
यह वैध रिटर्न प्रकार के साथ किसी भी त्रुटि के बिना सही उत्तर है
कौशिक थानकी

7

जब आप अपना सत्यापन सेट करते हैं, तो आपको सत्यापनकर्ता ऑब्जेक्ट को सहेजना चाहिए। आप इसका उपयोग व्यक्तिगत क्षेत्रों को मान्य करने के लिए कर सकते हैं।

<script type="text/javascript">
var _validator;
$(function () {    
     _validator = $("#form").validate();   
});

function doSomething() {    
     _validator.element($('#someElement'));
}
</script> 

- इसी तरह के सवाल के साथ क्रॉस पोस्ट किया गया


7

यदि आप व्यक्तिगत फ़ॉर्म फ़ील्ड को मान्य करना चाहते हैं, लेकिन यूआई को ट्रिगर नहीं करना चाहते हैं और किसी भी सत्यापन त्रुटियों को प्रदर्शित करना चाहते हैं, तो आप Validator.check () पद्धति का उपयोग करने पर विचार कर सकते हैं जो दिए गए फ़ील्ड सत्यापन को लौटाता है या नहीं।

यहाँ उदाहरण है

var validator = $("#form").data('validator');
if(validator.check('#element')){
    /*field is valid*/
}else{
    /*field is not valid (but no errors will be displayed)*/
}

0

यदि आप अपने फॉर्म में "कुछ तत्व" (सभी तत्व नहीं) के लिए सत्यापन करना चाहते हैं। आप इस विधि का उपयोग कर सकते हैं:

$('input[name="element-one"], input[name="element-two"], input[name="element-three"]').valid();

आशा है कि यह सबकी मदद करेगा :)

संपादित


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.