2012-12-02 13 views
35

मेरे पास एक फॉर्म और फ़ॉर्म के बाहर एक बटन वाला एक साधारण पृष्ठ है। मैं बटन क्लिक पर फॉर्म को सत्यापित करने की कोशिश कर रहा हूं। मैंने दस्तावेज़ पर फॉर्म के सत्यापन के लिए नियम जोड़े हैं। पहले से ही फ़ंक्शन। हालांकि फॉर्म मान्य नहीं हो रहा है।बटन पर jQuery फॉर्म सत्यापन

एचटीएमएल: -

<html> 
<head> 
    <script src="lib/jquery1.5.2.js"></script> 
    <script src="lib/jquery.validate.js"></script> 
    <script src="lib/myjs.js"></script> 
</head> 
<body> 

<form id="form1" name="form1"> 
    Field 1: <input id="field1" type="text" class="required"> 
</form> 

<div> 
    <input id="btn" type="button" value="Validate"> 
</div> 

</body> 
</html> 

जे एस: -

$(document).ready(function(){ 

$("#form1").validate({ 
    rules: { 
    field1: "required" 
    }, 
    messages: { 
    field1: "Please specify your name" 

    } 
}) 

$('#btn').click(function() { 
$("#form1").validate(); // This is not working and is not validating the form 
}); 

}); 

किसी भी विचार क्या गलत है?

+0

क्या आपको जावास्क्रिप्ट त्रुटि मिलती है? –

+0

कोई जेएस त्रुटि नहीं है। – ajithmanmu

+0

सत्यापन के लिए आप किस प्लगइन का उपयोग कर रहे हैं? – WebweaverD

उत्तर

94

अपने click हैंडलर के भीतर, गलती .validate() विधि है; यह केवल प्लगइन शुरू करता है, यह form को मान्य नहीं करता है।

, form के भीतर एक submit बटन के लिए .valid() का प्रयोग कर एक सत्यापन जाँच को गति प्रदान करने की आवश्यकता को समाप्त करने के लिए ...

$('#btn').on('click', function() { 
    $("#form1").valid(); 
}); 

jsFiddle Demo

.validate() - प्लगइन (विकल्पों के साथ) प्रारंभ करने में एक बार डीओएम तैयार पर।

.valid() - सत्यापन स्थिति (बूलियन मान) की जांच करने के लिए या किसी भी समय form पर सत्यापन परीक्षण ट्रिगर करने के लिए।

अन्यथा, यदि आप form कंटेनर के भीतर एक type="submit" बटन था, आप एक विशेष click हैंडलर और .valid() विधि, की जरूरत नहीं होगी के रूप में प्लगइन कि स्वचालित रूप से कब्जा होगा।

Demo without click handler


संपादित:

आप भी अपने HTML के भीतर दो मुद्दों है ...

<input id="field1" type="text" class="required"> 
  • आप class="required" जब घोषित नियमों की जरूरत नहीं हैके भीतर। यह अनावश्यक और अनावश्यक है।

  • name विशेषता अनुपलब्ध है। नियम .validate() के भीतर name द्वारा घोषित किए गए हैं। प्लगइन इनपुट का ट्रैक रखने के लिए अद्वितीय name विशेषताओं पर निर्भर करता है।

होना चाहिए ...

<input name="field1" id="field1" type="text" /> 
+0

धन्यवाद !! .. यह काम किया .. – ajithmanmu

+0

आपका स्वागत है। – Sparky

+0

मैंने इसे एक अलग प्रकार की फॉर्म संरचना के लिए काम करने के लिए अपना उत्तर संपादित किया। http://stackoverflow.com/a/28723145/2615737 –

1
$(document).ready(function() { 
    $("#form1").validate({ 
     rules: { 
      field1: "required" 
     }, 
     messages: { 
      field1: "Please specify your name" 
     } 
    }) 
}); 

<form id="form1" name="form1"> 
    Field 1: <input id="field1" type="text" class="required"> 
    <input id="btn" type="submit" value="Validate"> 
</form> 

तुम भी आप प्रकार = "बटन" का उपयोग कर रहे हैं। और मुझे यकीन नहीं है कि आपको सबमिट बटन को अलग करना क्यों चाहिए, इसे फ़ॉर्म के भीतर रखें। इस तरह से ऐसा करना उचित है। यह काम करना चाहिए।

+0

सच है। लेकिन क्या मैं कम से कम अपना वोट वापस ले सकता हूं? हाहा बस एक छोटी सी गलती, और मेरे हिस्से पर एक निरीक्षण। ; पी ... मैंने कभी नहीं कहा कि यह गलत है, मैंने अभी कहा है कि यह उस तरह से क्लीनर है। आम तौर पर बोलना। – Wap

+0

हमेशा गलती क्यों पाती है? बस एक वैकल्पिक विकल्प देकर मदद करने की कोशिश की, जितनी जल्दी हो सके, इसलिए यदि वह यह पता चला कि वह यही देख रहा है तो वह इसका उपयोग कर सकता है। ऐसा नहीं है कि मैं ट्रोलिंग कर रहा हूं। टिप्पणियों का आदान-प्रदान एक लंबी प्रक्रिया है, आपको पता है। चमकदार तरफ, आदमी पर बेहतर देखो। – Wap

+0

SO विशिष्ट प्रश्नों के गुणवत्ता के उत्तरों के बारे में है ... कुछ भी नहीं, कुछ भी कम नहीं। – Sparky

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