से पहले क्लाइंट पर RequiredFieldValidator को कॉल करने के लिए कैसे मुझे कुछ कोड विरासत में मिला है जो divs का उपयोग करके टैब में पृष्ठ को तोड़ देता है। पहले पृष्ठ पर कई आवश्यक फ़ील्ड और रेगेक्स वैधकर्ता हैं। समस्या यह है कि कोई उपयोगकर्ता किसी अन्य टैब पर स्विच कर सकता है, एक पोस्टबैक ट्रिगर कर सकता है और पहले पेज पर वैधताओं को विफल कर सकता है, जिससे चीजों को गड़बड़ में छोड़ दिया जा सकता है।पोस्टबैक
जो मैं करना चाहता हूं वह पहले पृष्ठ पर सत्यापन करना है क्योंकि उपयोगकर्ता एक और टैब चुनता है, इस प्रकार उन्हें पहले टैब तक वैध होने तक एक नए टैब पर जाने से रोकता है।
<ul>
<li><a href="#tab1">Tab 1</a> </li>
<li><a href="#tab2" onclick="return isValid();">Tab 2</a></li>
<li><a href="#tab3" onclick="return isValid();">Tab 3</a></li>
</ul>
जहां isValid
को वैधकर्ताओं को आग लगाना आवश्यक है।
धन्यवाद!
अद्यतन: क्योंकि मैं (प्रदर्शन खिलवाड़ से बचने के लिए), टैब (लंगर) स्विच अभी भी हो रहा है, भले ही दोनों href और onclick गुण प्रदान करने की आवश्यकता codeka द्वारा प्रदान की जवाब बहुत करीब है, तथापि, मान्यता विफल रहता है। यहां बताया गया है कि मैंने इसे कैसे हल किया। अस्वीकरण: बदसूरत कोड
<ul>
<li><a id="tab1Tab" href="#tab1" style="display:none"/><a onclick="isValid('tab1');">Tab 1</a></li>
<li><a id="tab2Tab" href="#tab2" style="display:none"/><a onclick="isValid('tab2');">Tab 2</a></li>
<li><a id="tab3Tab" href="#tab3" style="display:none"/><a onclick="isValid('tab3');">Tab 3</a></li>
</ul>
function isValid(tab) {
var valid = Page_ClientValidate();
var tabId = (valid ? tab : "tab1") + "Tab";
$("#" + tabId).click();
}
क्लिक ईवेंट के साथ क्रॉस-ब्राउज़र संगतता के लिए jQuery का उपयोग नोट करें। और यह केवल तभी काम करता है जब थॉमस के उत्तर के अनुसार अन्य टैब पर कोई वैधता नहीं है, तो मुझे isValid
में सत्यापन समूह और अतिरिक्त तर्क का उपयोग करने की आवश्यकता होगी यदि कोई जोड़ा जाए।
function isValid() {
return Page_ClientValidate();
}
+1 धन्यवाद, यह तब तक काम करना चाहिए जब अन्य टैब पर कोई अन्य वैधता न हो, मैं अब बेहतर जांच करूँगा :) – si618
आप सत्यापन समूह को भी पास कर सकते हैं जिसे आप मान्य करना चाहते हैं, उदाहरण के लिए: 'पृष्ठ_ClientValidate ("पंजीकरण"); ' –
यह बहुत करीब है, वैधकर्ता ऑनक्लिक पर गोलीबारी कर रहे हैं, लेकिन एंकर अभी भी किसी अन्य टैब पर ले जाया जा रहा है भले ही 'झूठी' वापस आ जाए। – si618