मेरे पास एक ऐसा फॉर्म है जहां उपयोगकर्ता किसी सूची में आइटम जोड़ना जारी रख सकता है। जब वे इस पृष्ठ को सबमिट करने के लिए जाते हैं, तो मैं यह सत्यापित करना चाहता हूं कि इस सूची में वास्तव में आइटम हैं (व्यक्तिगत आइटम नहीं जिन्हें वे पहले से ही मान्य कर चुके हैं)। प्रत्येक आइटम टी.आर. "कार्रवाई" की एक अतिरिक्त विशेषता होने के साथ एक तालिका में एक नई पंक्ति में जुड़ जाता है ... इसलिए ऐसा लगता है कि:jQuery वैलिडेटर - गैर-फॉर्म आइटम के विरुद्ध कैसे सत्यापित करें?
<tr action="whatever">...</tr>
मुझे क्या करना प्रयास किया गया था कि कहा जाता है एक कस्टम addMethod जोड़ने है एक समारोह है जो एक विशेषता के रूप में कार्रवाई के साथ पंक्तियों की संख्या में गिना जाएगा:
$("#tableID").find("tr[action]").length
और अगर है कि लंबाई 0 से अधिक है, यह सच है, अन्यथा, झूठी देता है।
यह वैधकर्ता कॉल के बाहर ठीक काम करता है लेकिन किसी कारण से यह पूरी तरह से इसे छोड़ देता है।
मैं वास्तव में एक उदाहरण या कुछ अंतर्दृष्टि का उपयोग कर सकता हूं कि इसे इस नियम को कैसे वैध बनाया जाए, भले ही यह विशेष रूप से एक फॉर्म तत्व न हो।
नीचे स्केल्ड कोड:
* ध्यान दें कि मैं पहले से ही संदेशों के लिए सेटअप चूक जा रहा है और नहीं क्या है।
$.validator.addMethod("validProductList", function (value, element) {
return this.optional(element) || validateProductList();
}, "You have no products in your list");
$("#processForm").click(function() {
$("#pageForm").validate({
submitHandler: function() {
$("#errors").hide();
//processPage();
},
rules: {
//other rules,
validProductList: true
}
});
});
function validateProductList() {
var isValid = false;
var useList = $("#tblAddedProducts").find("tr[action]").length;
if (useList > 0) { isValid = true; }
return isValid;
}
ले श्वास। धन्यवाद! मुझे डर था कि ऐसा होने की आवश्यकता थी और मैं वास्तव में किसी अन्य को सत्यापित करने के लिए एक छिपे हुए फ़ील्ड को जोड़ना पसंद नहीं करता था। – Joshua
छुपा फ़ील्ड चाल अब और काम नहीं करती है, यह नवीनतम संस्करण में अब छिपे हुए इनपुट को मान्य नहीं कर रही है। '