2012-01-05 14 views
5

सबमिट मैं एक साधारण पाठ बॉक्स और अपने पन्ने पर बटन प्रकार इनपुट है।हमेशा Enter दबा फार्म

<input id="sText" type="text" /> 
<input id="sButton" type="button" value="button" /> 

मैं jQuery का उपयोग करके एक बटन क्लिक करता हूं।

$("[id$=sButton]").click(function() { 

     ...do Stuff 

    }); 

उपरोक्त कोड तब तक ठीक काम करता है जब तक मैं मैन्युअल रूप से बटन क्लिक करता हूं। जब मैं बटन पर क्लिक करने के लिए "एंटर" कुंजी का उपयोग करना चाहता था तो मैंने समस्याओं में भागना शुरू कर दिया। कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मैं एंटर कुंजी को इसके डिफ़ॉल्ट सबमिट फ़ंक्शन निष्पादित करने से नहीं रोक सकता।

मैंने सोचा था से इनपुट प्रकार बदल "सबमिट करें" के लिए "बटन"।

मैं onsubmit="return false;"

को प्रपत्र की ऑनसबमिट स्थापित करने की कोशिश की मैं jQuery का उपयोग कर दर्ज महत्वपूर्ण घटना पर कब्जा करने की कोशिश की:

$("#sText").keyup(function (event) { 
     if (event.keyCode == 13) { 
      alert("Enter!"); 
      // $("#sButton").click(); 
     } 
    }); 

हर बार जब मैं एंटर कुंजी दबाएं, यह है कि मैं पर्चे को जमा हूँ , पूरा पृष्ठ ताज़ा करता है। उपरोक्त jQuery कोड "एंटर" कीस्ट्रोक को कैप्चर करता है, लेकिन फ़ॉर्म अभी भी पृष्ठ को सबमिट और रीफ्रेश करता है।

मैं चल रहा क्या यकीन नहीं है।

उत्तर

9

आप कार्रवाई को रद्द करने की जरूरत है।

event.preventDefault(); 

लेकिन मेरा मानना ​​है कि आप केवल keydown साथ फार्म जमा करने को मार सकता है, KeyUp नहीं।

+0

+1 कुंजीडाउन सुझाव –

+1

"event.preventDefault()" जोड़ने के अलावा मुझे "कीप" को "कीप्रेस" में भी बदलना पड़ा, न तो कीप या कीडाउन काम किया। धन्यवाद! – SharpBarb

+0

ऐसा लगता है कि एंटर कुंजी चेक और बटन को एक बटन प्रकार के रूप में सबमिट करने के बजाए इसे सबमिट करने के बजाय बहुत सारे अतिरिक्त कोड का उपयोग करना है। –

1

Epascarello सही है, तो आप रद्द करने के लिए कोड वह तुम्हें दे दी है साथ प्रस्तुत करने के लिए की जरूरत है। लेकिन क्या आप भी इतनी है कि ENTER कुंजी और क्लिक करने बटन एक ही बात कर वापस एक प्रकार प्रस्तुत करने के लिए बटन बदलना चाहिए। इस तरह आपको केवल एक क्षेत्र में जमा की रद्दीकरण को संभालना होगा।

<input id="sButton" type="submit" value="Submit" /> 

JQuery:

$("#YourFormId").submit(function(event){ 

     event.preventDefault(); 
     ...do Stuff 

    }); 

इस तरह और बटन क्लिक एक समारोह संभालती कुंजी दर्ज करें।

संपादित करें: event.preventDefault() को पहले कथन के रूप में रखें।

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