में डेटा-विशेषताओं के आधार पर jQuery सत्यापन नियम जोड़ना मैं data-
विशेषताओं के आधार पर नियम जोड़ने की कोशिश कर रहे jQuery validation प्लगइन का उपयोग कर रहा हूं। मैं data-minlength
या data-maxlength
पर आधारित न्यूनतम/अधिकतम लम्बाई नियम जोड़ रहा हूं। यहाँ कुछ नमूना HTML है:लूप
<form>
<input name="input1" data-maxlength="5" data-minlength="3" required>
<input name="input2" data-maxlength="5" required>
<input name="input3" data-minlength="3" required>
<button>Submit</button>
</form>
मैं नियम जोड़ने के लिए यह कर रहा हूँ और यह ठीक काम कर रहा है:
$('input[data-minlength]').each(function(){
if ($(this).data('minlength')) {
$(this).rules("add", {
minlength: $(this).data('minlength')
});
}
});
$('input[data-maxlength]').each(function(){
if ($(this).data('maxlength')) {
$(this).rules("add", {
maxlength: $(this).data('maxlength')
});
}
});
लेकिन मैं इसे छोटा करने के लिए चाहता था, इसलिए मैं इस कोशिश की और यह काम नहीं कर रहा:
['minlength', 'maxlength'].forEach(function(item){
$('input[data-'+item+']').each(function(){
if ($(this).data(item)) {
// alert(item) shows the correct rule name
$(this).rules("add", {
// Next line fails, but hardcoding a rule name works
item: $(this).data(item)
});
}
});
});
त्रुटि इसलिए है क्योंकि $.validator.methods[method]
अपरिभाषित है। किसी भी तरह से इसे गलत विधि नाम पास हो रहा है, भले ही alert(item)
मुझे बताता है कि नियम का नाम सही है।
क्या किसी के पास कोई विचार है, या एक वैकल्पिक समाधान है जिसका उपयोग मैं उपरोक्त दोहराव, कामकाजी कोड को छोटा करने के लिए कर सकता हूं?
डेमो: http://jsfiddle.net/kaVKe/1/
+1 इसके लिए केवल सेकंड थे ...;) – Yoshi
धन्यवाद, मुझे पता था कि यह कुछ बुनियादी था। जावास्क्रिप्ट मेरा मजबूत बिंदु नहीं है, मैं त्वरित स्पष्टीकरण की सराहना करता हूं। –