2009-04-13 20 views
5

निम्न प्रपत्र पर विचार से HTML प्रपत्र को रोकता है:जावास्क्रिप्ट onBlur घटना प्रस्तुत किया जा रहा

<form action="/a" method="post"> 
    <input name="x" type="text" onblur="myonblur(e)" /> 
    <input name="y" type="text" /> 
    <input name="submit" type="submit" value="Submit" /> 
</form> 

जब ध्यान देने के साथ नाम "x" और उपयोगकर्ता प्रेस तत्व पर है सबमिट बटन, onBlur घटना आग लेकिन फार्म जमा नहीं किया जाता। अगर मेरे पास मेरे फॉर्म में घटनाएं हैं तो सबमिट बटन को अपेक्षित करने का कोई तरीका है?

उत्तर

3

अपने onBlur() विधि के अनुकूलन तो यह कम समय चलाने के लिए ले जाता है पर विचार करें। यदि आपका फॉर्म सबमिट होने से रोका गया है, तो ऐसा हो सकता है क्योंकि onBlur() बहुत लंबा है और ब्राउज़र को और कुछ करने से रोकता है।

तुम भी onBlur() के बजाय onChange() विधि का उपयोग कर सकते हैं। यह आपके लिए बेहतर काम कर सकता है।

+0

आपके उत्तर के लिए धन्यवाद। आइडिया जांचना है कि उपयोगकर्ता नाम AJAX कॉल के माध्यम से मौजूद है, इसलिए ऑन चेंज() के साथ, यदि संभव हो, तो इसे लागू करना बहुत कठिन होगा। तो, तुम्हारा मतलब है, मेरे लिए ब्लर() पर उपयोग करने का कोई तरीका नहीं है? – Artem

+0

आपको पृष्ठभूमि में चलने वाले एसिंक्रोनस AJAX अनुरोधों का उपयोग करना चाहिए और ब्राउज़र को लटका नहीं देना चाहिए। उन लोगों का उपयोग करके, सबजमिट अभी भी काम करेगा, भले ही AJAX अनुरोध समाप्त न हो। Jquery लाइब्रेरी डिफ़ॉल्ट रूप से async करता है, http://docs.jquery.com/Ajax/jQuery.ajax –

0

अपने onBlur फ़ंक्शन कॉल के बाद

return true; 

जोड़ने का प्रयास करें। जिस समस्या का आप सामना कर रहे हैं वह ईवेंट हैंडलर की "वापसी झूठी" रोकथाम के कारण हो सकता है।

+0

नंबर पर एक नज़र डालें। पहला जवाब सही था। मैंने आपके दृष्टिकोण की कोशिश की और इससे मदद नहीं मिली। – Artem

+0

ठीक है। हालांकि यह सिर्फ एक संभावना थी;) – BYK

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