2014-10-21 9 views
5

मेरे पास कुछ इनपुट फ़ील्ड के साथ एक HTML फॉर्म है, इनपुट फ़ील्ड में से एक खोज फ़ील्ड है, जब मैं इस खोज इनपुट फ़ील्ड के आगे खोज बटन पर क्लिक करता हूं, तो खोज परिणाम AJAX का उपयोग कर सर्वर से वापस लौटाया जाए, जो मैं चाहता हूं वह फॉर्म सबमिशन को रोकना है जब उपयोगकर्ता इस विशिष्ट खोज इनपुट फ़ील्ड पर केंद्रित होता है और एंटर दबाता है। वैसे, मैं AngularJS का उपयोग कर रहा हूं, इसलिए समाधान JQuery या शुद्ध जावास्क्रिप्ट तरीके से थोड़ा अलग हो सकता है .. मुझे लगता है? किसी भी सलाह की सराहना की जाएगी!एचटीएमएल फॉर्म सबमिट करें जब विशिष्ट इनपुट पर एंटर दबाएं

उत्तर

2

बटन क्लिक हैंडलर में करना एक e.preventDefault()

function clickHandler(e){ 
    e.preventDefault(); 
} 

तुम भी एक सबमिट बटन के बजाय एक button उपयोग कर सकते हैं।

+0

यह सब प्रस्तुतियाँ को रोकने नहीं है? क्या उपयोगकर्ता केवल इनपुट सबमिशन को रोकना संभव है जब उपयोगकर्ता इस इनपुट फ़ील्ड पर केंद्रित है और दूसरों को नहीं? वैसे, मैं angularJS का उपयोग कर रहा हूं, मुझे यह कोड कहां रखना चाहिए? – dulan

+0

शायद यह उस इनपुट बॉक्स – TGH

+0

के लिए कुंजीपटल ईवेंट में ऐसा करने के लिए काम करेगा, आप सही हैं, मैंने इसे नहीं सोचा, धन्यवाद! – dulan

3

की तरह एक समारोह का उपयोग करें:

function doNothing() { 
 
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; 
 
    if(keyCode == 13) { 
 

 

 
\t if(!e) var e = window.event; 
 

 
\t e.cancelBubble = true; 
 
\t e.returnValue = false; 
 

 
\t if (e.stopPropagation) { 
 
\t \t e.stopPropagation(); 
 
\t \t e.preventDefault(); 
 
\t } 
 
}
<form name="input" action="http://www.google.com" method="get"> 
 
<input type="text" onkeydown="doNothing()"> 
 
<br><br> 
 
<input type="submit" value="Submit"> 
 
</form>

JSFIDDLE HERE

+0

yup, angularJS के लिए, मुझे बस इतना करना है कि केडडाउन को एनजी-कीडाउन में बदलना है, ठीक है! धन्यवाद! – dulan

0
When you submit form using enter key on particular text fields or submit button(focus). 
To prevent form submit twice, we can use both approach 

1. 
define var isEnterHitOnce=true globally which loaded at the time of form load 

on keyPress Event or on submitForm() 

if(event.keycode==13 && isEnterHitOnce){ 
isEnterHitOnce=false; 
//Process your code. Sent request to server like submitForm(); 
} 
isEnterHitOnce=false; 


2. 
disable the field object from where you received the action like 
beginning of method in formSubmit() 
    document.getElementById(objName).disabled=true; // objName would be your fields name like submitButton or userName 


//At the end of method or execution completed enable the field 
    document.getElementById(objName).disabled=false; 
संबंधित मुद्दे