वेब फ़ॉर्म सबमिट करने के लिए ENTER कुंजी को कैसे रोकें?


207

आप ENTERवेब-आधारित एप्लिकेशन में फ़ॉर्म सबमिट करने से एक प्रमुख प्रेस को कैसे रोक सकते हैं?

जवाबों:


99

[ संशोधन 2012, कोई इनलाइन हैंडलर, संरक्षित textarea दर्ज हैंडलिंग]

function checkEnter(e){
 e = e || event;
 var txtArea = /textarea/i.test((e.target || e.srcElement).tagName);
 return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13;
}

अब आप प्रपत्र पर एक कीपर हैंडलर को परिभाषित कर सकते हैं:
<form [...] onkeypress = "रिटर्न चेकइन्टर (ईवेंट)">

document.querySelector('form').onkeypress = checkEnter;

3
वैसे: आप textarea को बाहर करने के लिए checkEnter फ़ंक्शन में इनपुट प्रकार (इवेंट स्रोत के माध्यम से) के लिए एक चेक जोड़ सकते हैं।
KooiInc

1
काम करता है। मैंने इसे एकल इनपुट में जोड़ा क्योंकि मैं फ़ॉर्म सबमिट करने से बचना चाहता था। इसमें आंतरिक खोज करने के लिए एक बटन था, और यह वास्तव में प्रयोज्य में सुधार करता है।
फॉक्सिननी

1
इस दृष्टिकोण के साथ एक समस्या (एक पूरे के रूप में एक घटना-हैंडलर के साथ इस फ़ंक्शन का उपयोग करते हुए), यह है कि यह भी textareas में होने से रोकता है कि फार्म में भी हैं (जहां प्रवेश आमतौर पर वांछनीय हैं)।
लोनी बेस्ट

1
@ लोनीस्टेस्ट: ध्यान देने के लिए धन्यवाद। आप था इस जवाब पर मेरी टिप्पणी को पढ़ने के (ऊपर देखें), तुमने किया था? वैसे भी, मैंने इस पुराने उत्तर को संशोधित किया।
कूइइं

1
@ जोनाथन: आप हैंडलर को एकल इनपुट फ़ील्ड या कुछ डिव से जोड़ सकते हैं जिसमें इनपुट फ़ील्ड का संग्रह होता है (लेकिन बटन नहीं) पूरे फॉर्म के अनुसार।
KooiInc

57

यहाँ एक jQuery हैंडलर है जिसका उपयोग सबमेट्स में प्रवेश रोकने के लिए किया जा सकता है, और बैकस्पेस कुंजी -> बैक को भी रोक सकता है। "कीसटॉप" ऑब्जेक्ट में कीकोड (चयनकर्ता: चयनकर्ता) जोड़े का उपयोग उन नोड्स से मिलान करने के लिए किया जाता है, जो उनकी डिफ़ॉल्ट कार्रवाई को आग नहीं देना चाहिए।

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

यहाँ कोड है, आप तक पहुँच के बारे में सोचने के लिए और आप वास्तव में ऐसा क्यों करना चाहते हैं!

$(function(){
 var keyStop = {
   8: ":not(input:text, textarea, input:file, input:password)", // stop backspace = back
   13: "input:text, input:password", // stop enter = submit 

   end: null
 };
 $(document).bind("keydown", function(event){
  var selector = keyStop[event.which];

  if(selector !== undefined && $(event.target).is(selector)) {
      event.preventDefault(); //stop event
  }
  return true;
 });
});

12
सरल तरीके से: $ ("# myinput")। कीडाउन (फ़ंक्शन (e) {if (e.which == 13) e.preventDefault ();}); कुंजी एक साथ "कीडाउन" और event.preventDefault () का उपयोग करना है। यह "कीप" के साथ काम नहीं करता है।
लेप

इससे अन्य समाधानों पर लाभ होता है, जो केवल कुंजी 13 को ब्लॉक करते हैं कि ब्राउज़र का ऑटो-सुझाव ठीक से काम करना जारी रखेगा।
jsalvata

52

बस ऑनसाइट हैंडलर से झूठी वापसी करें

<form onsubmit="return false;">

या यदि आप बीच में एक हैंडलर चाहते हैं

<script>
var submitHandler = function() {
  // do stuff
  return false;
}
</script>
<form onsubmit="return submitHandler()">

5
यह सबसे सरल उत्तर प्रतीत होता है। मैंने इसे Google Chrome पर आज़माया और यह ठीक काम करता है। क्या आपने हर ब्राउज़र में इसका परीक्षण किया है?
स्टाइलफ्ले

22
यह एक अच्छा विचार नहीं है यदि आप चाहते हैं कि आपका फॉर्म submitबटन दबाकर प्रस्तुत किया जाए
AliBZ

13
काम नहीं करता है क्योंकि सबमिट बटन अब फॉर्म को नहीं जमा करता है
बजे

39
@Paul, यह 38 अपवोट कैसे प्राप्त किया? सब पर<form> जमा होने से रोकना बच्चे को स्नान के पानी के साथ बाहर फेंक रहा है।
पचेरियर

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

44
//Turn off submit on "Enter" key

$("form").bind("keypress", function (e) {
    if (e.keyCode == 13) {
        $("#btnSearch").attr('value');
        //add more buttons here
        return false;
    }
});

5
यह बहुत अच्छा काम करता है। e.preventDefault()के बजाय return falseएक ही छोर को प्राप्त होगा लेकिन घटना को मूल तत्वों में हैंडलर तक पहुंचने की अनुमति देगा। डिफ़ॉल्ट कार्रवाई (फॉर्म का प्रवेश) अभी भी रोका जाएगा
रद्द कर

24

आपको इस फ़ंक्शन को कॉल करना होगा जो फॉर्म के डिफ़ॉल्ट सबमिट व्यवहार को रद्द कर देगा। आप इसे किसी भी इनपुट फ़ील्ड या ईवेंट में संलग्न कर सकते हैं।

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


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

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

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}

2
ई एक तर्क होना चाहिए और फिर आपको window.event के लिए जांचना चाहिए। साथ ही, आपको ईवेंट से कीकोड मिलना चाहिए। अंत में, आपको झूठी वापसी करनी चाहिए।
21

9
क्या आप कृपया बता सकते हैं कि इस फ़ंक्शन को कहाँ और कैसे कॉल किया जाए?
mydoghasworms

17

ENTER कुंजी केवल फ़ॉर्म के डिफ़ॉल्ट सबमिट बटन को सक्रिय करती है, जो पहले होगा

<input type="submit" />

ब्राउज़र प्रपत्र के भीतर पाता है।

इसलिए सबमिट बटन नहीं है, लेकिन कुछ ऐसा है

<input type="button" value="Submit" onclick="submitform()" /> 

संपादित करें : टिप्पणियों में चर्चा के जवाब में:

यदि आपके पास केवल एक पाठ फ़ील्ड है तो यह काम नहीं करता है - लेकिन यह हो सकता है कि उस मामले में वांछित व्यवहार हो।

दूसरा मुद्दा यह है कि यह फॉर्म जमा करने के लिए जावास्क्रिप्ट पर निर्भर करता है। यह एक पहुंच बिंदु से समस्या हो सकती है। इसे <input type='button'/>जावास्क्रिप्ट के साथ लिखकर हल किया जा सकता है , और फिर <input type='submit' />एक <noscript>टैग के भीतर रखा जा सकता है । इस दृष्टिकोण का दोष यह है कि जावास्क्रिप्ट-अक्षम किए गए ब्राउज़रों के लिए आपके पास ENTER पर फॉर्म सबमिशन होगा। यह ओपी को तय करना है कि इस मामले में वांछित व्यवहार क्या है।

मुझे पता है कि जावास्क्रिप्ट को बिल्कुल भी आमंत्रित किए बिना ऐसा करने का कोई तरीका नहीं है।


यदि केवल एक क्षेत्र है तो अजीब रूप से यह फ़ायरफ़ॉक्स में काम नहीं करता है।
डान्सिंगरमैन

5
पहुंच के लिए भयानक? शायद। लेकिन यह है कि वे पुरुष के सवाल है, जो है तो क्या हुआ के लिए ... हो सकता है कि जवाब देने के लिए एक संपादन का कहना है तक पहुँच मुद्दा एक अच्छा समझौता है है का जवाब?
नील बार्नवेल

1
@bobince - शायद पहुंच के कारण सवाल -1 का हकदार है, लेकिन सवाल का यह सटीक जवाब है? ऐसा मत सोचो। इसके अलावा, ऐसे वैध उपयोग के मामले हैं जहां आप यह करना चाहते हैं।
डेनसिंगरमैन

आपको जावास्क्रिप्ट के बिना सबमिट करने के लिए फ़ॉर्म को असंभव बनाने की आवश्यकता नहीं है, हालांकि, एह। हालांकि अगर यह काम किया है, जो यह नहीं है क्योंकि ब्राउज़र खुशी से एक फार्म जमा करेंगे जिसमें कोई सबमिट बटन नहीं है।
बोबिन्स

2
एक पाठ इनपुट और एक इनपुट-बटन के साथ उन सभी से अधिक ओपेरा में परीक्षण किया गया: सभी अभी भी एंटर पर फॉर्म जमा करते हैं। आपको स्पष्ट रूप से दर्ज मुद्दे को हल करने के लिए जावास्क्रिप्ट की आवश्यकता है, लेकिन चाल यह है कि पृष्ठ को पूरी तरह से निष्क्रिय नहीं करना है जहां जेएस अनुपलब्ध है।
bobince

12

शुद्ध जावास्क्रिप्ट में संक्षिप्त उत्तर है:

<script type="text/javascript">
    window.addEventListener('keydown', function(e) {
        if (e.keyIdentifier == 'U+000A' || e.keyIdentifier == 'Enter' || e.keyCode == 13) {
            if (e.target.nodeName == 'INPUT' && e.target.type == 'text') {
                e.preventDefault();
                return false;
            }
        }
    }, true);
</script>

यह केवल इनपुट प्रकार = 'टेक्स्ट' के लिए "एन्टर" कीपर क्रिया को निष्क्रिय करता है। आगंतुक अभी भी पूरी वेबसाइट पर "एंटर" कुंजी का उपयोग कर सकते हैं।

यदि आप अन्य कार्यों के लिए "एन्टर" को भी निष्क्रिय करना चाहते हैं, तो आप कंसोल.लॉग (ई) जोड़ सकते हैं; अपने परीक्षण उद्देश्यों के लिए, और क्रोम में F12 को हिट करें, पृष्ठ पर "कंसोल" टैब और "बैकस्पेस" पर जाएं और इसे देखने के लिए अंदर देखें कि क्या मान लौटाए गए हैं, फिर आप उन सभी मापदंडों को लक्षित कर सकते हैं ताकि कोड को और बढ़ाया जा सके। "e.target.nodeName" , "e.target.type" और कई और अधिक के लिए अपनी आवश्यकताओं के अनुरूप ...

इसी तरह के प्रश्न के लिए मेरा विस्तृत जवाब यहां देखें


3
वास्तव में यह होना चाहिए e.target.nodeName === 'INPUT' && e.target.type !== 'textarea'। निर्दिष्ट कोड के साथ यह फॉर्म जमा करने की अनुमति देगा यदि कोई रेडियो या चेकबॉक्स केंद्रित है।
afnpires

1
यह सबसे प्रभावी और संसाधन-अनुकूल समाधान है। @AlexandrePires को धन्यवाद! यहाँ मेरी पूरी स्क्रिप्ट काम कर रही है: stackoverflow.com/a/40686327/1589669
eapo

1
एकमात्र कार्यशील समाधान; कम से कम मेरी स्थिति में।
hex494D49

9

इस विषय पर, यहाँ या अन्य पदों पर मुझे मिले सभी उत्तरों में एक खामी है और वह यह है कि यह फार्म तत्व पर वास्तविक परिवर्तन ट्रिगर को रोकता है। इसलिए यदि आप इन समाधानों को चलाते हैं तो ऑनकॉन्ग्र घटना भी ट्रिगर नहीं होती है। इस समस्या को दूर करने के लिए मैंने इन कोडों को संशोधित किया और अपने लिए निम्न कोड विकसित किया। मुझे उम्मीद है कि यह दूसरों के लिए उपयोगी हो जाएगा। मैंने अपने फॉर्म "stop_auto_submit" को एक वर्ग दिया और निम्नलिखित जावास्क्रिप्ट जोड़ा:

$(document).ready(function() 
{
    $('form.prevent_auto_submit input,form.prevent_auto_submit select').keypress(function(event) 
    { 
        if (event.keyCode == 13)
        {
            event.preventDefault();
            $(this).trigger("change");
        }
    });
});

7

मैंने हमेशा अतीत में ऊपर की तरह एक कीपर हैंडलर के साथ किया है, लेकिन आज एक सरल समाधान पर हिट हुआ। प्रवेश कुंजी फॉर्म पर पहले गैर-अक्षम सबमिट बटन को ट्रिगर करती है, इसलिए वास्तव में यह आवश्यक है कि उस बटन को सबमिट करने के लिए उस बटन को इंटरसेप्ट करना है:

<form>
  <div style="display: none;">
    <input type="submit" name="prevent-enter-submit" onclick="return false;">
  </div>
  <!-- rest of your form markup -->
</form>

बस। ब्राउज़र / फ़ील्ड / इत्यादि के द्वारा कीपेस को हमेशा की तरह संभाला जाएगा। यदि एंटर-सबमिट लॉजिक ट्रिगर हो जाता है, तो ब्राउज़र उस छिपे हुए सबमिट बटन को खोज लेगा और उसे ट्रिगर कर देगा। और जावास्क्रिप्ट हैंडलर तब सबमिशन को रोकेगा।


1
आमतौर पर मुझे हैक पसंद नहीं है, लेकिन यह वास्तव में प्रभावी है।
TechWisdom

1
div को हटाने और hiddenइनपुट पर सिर्फ attr डाल कम होगा। अच्छा हैक :)
निक

5

मैंने IE8,9,10, ओपेरा 9+, फ़ायरफ़ॉक्स 23, सफारी (पीसी) और सफारी (मैक) के लिए इस क्रॉस ब्राउज़र को बनाने में कुछ समय बिताया है

JSFiddle उदाहरण: http://jsfiddle.net/greatbigmassive/ZyeHe/

आधार कोड - इस फ़ंक्शन को अपने फॉर्म से जुड़े "ऑनकीप्रेस" के माध्यम से कॉल करें और इसमें "window.event" पास करें।

function stopEnterSubmitting(e) {
    if (e.keyCode == 13) {
        var src = e.srcElement || e.target;
        if (src.tagName.toLowerCase() != "textarea") {
            if (e.preventDefault) {
                e.preventDefault();
            } else {
                e.returnValue = false;
            }
        }
    }
}

4
stopSubmitOnEnter (e) {
  var eve = e || window.event;
  var keycode = eve.keyCode || eve.which || eve.charCode;

  if (keycode == 13) {
    eve.cancelBubble = true;
    eve.returnValue = false;

    if (eve.stopPropagation) {   
      eve.stopPropagation();
      eve.preventDefault();
    }

    return false;
  }
}

फिर अपने फॉर्म पर:

<form id="foo" onkeypress="stopSubmitOnEnter(e);">

हालाँकि, यह बेहतर होगा कि आप अप्रचलित जावास्क्रिप्ट का उपयोग न करें।


मुझे यह संस्करण पसंद है क्योंकि यह @hash द्वारा एक से अधिक पठनीय है। एक समस्या हालांकि, आपको "अगर (कीकोड == 13)" ब्लॉक के भीतर झूठे लौटना चाहिए। जैसा कि आपके पास है, यह फ़ंक्शन फ़ील्ड में किसी भी कीबोर्ड इनपुट को रोकता है। इसके अलावा @ हैश के संस्करण में e.keyCode, e.which, और e.charCode शामिल हैं ... निश्चित नहीं कि यदि e.charCode महत्वपूर्ण है, लेकिन मैं इसे वैसे भी वहाँ रखता हूँ: "var keycode = eve.keyCode || eve.which || eve.charCode, "।
जैक सेनचेल

धन्यवाद, जैक। मैंने उत्तर को जांचने के लिए संपादित किया charCode। मैं भी इफ़ return false-ब्लॉक के अंदर चला गया । अच्छी पकड़।
17'11 को ntownsend

3

मेरे मामले में, इस jQuery जावास्क्रिप्ट ने समस्या को हल किया

jQuery(function() {
            jQuery("form.myform").submit(function(event) {
               event.preventDefault();
               return false;
            });
}

बहुत बढ़िया, धन्यवाद @Kirby! यह होने के नाते कि प्रवेश कुंजी अब फ़ॉर्म में अक्षम हो गई है, फिर आप <input>फॉर्म के भीतर सभी फ़ील्ड के लिए प्रवेश कुंजी कैसे सक्षम कर सकते हैं ?
इयान कैंपबेल

3

फ़ॉर्म सबमिट करने के लिए "ENTER" रोकना आपके कुछ उपयोगकर्ताओं को असुविधा कर सकता है। इसलिए बेहतर होगा कि आप नीचे दी गई प्रक्रिया का पालन करें:

अपने फॉर्म टैग में 'onSubmit' घटना लिखें:

<form name="formname" id="formId" onSubmit="return testSubmit()" ...>
 ....
 ....
 ....
</form>

जावास्क्रिप्ट फ़ंक्शन इस प्रकार लिखें:

function testSubmit(){
  if(jQuery("#formId").valid())
      {
        return true;
      }
       return false;

     } 

     (OR)

क्या कभी कारण है, यदि आप Enter कुंजी दबाने पर फ़ॉर्म सबमिट करने से रोकना चाहते हैं, तो आप निम्न फ़ंक्शन को जावास्क्रिप्ट में लिख सकते हैं:

    $(document).ready(function() {
          $(window).keydown(function(event){
          if(event.keyCode == 13) {
               event.preventDefault();
               return false;
              }
           });
         });

धन्यवाद।


3

इस टैग को अपने फॉर्म में जोड़ें - onsubmit="return false;" फिर आप केवल कुछ जावास्क्रिप्ट फ़ंक्शन के साथ अपना फॉर्म जमा कर सकते हैं।


ओपी (जैसे कि इस ब्राउज़र सुविधा से सबसे अधिक काट लिया गया है) शायद अभी भी माउस क्लिक के साथ सबमिट करने की अनुमति देना चाहता था, जिसे यह (दुर्भाग्य से अक्सर अनुशंसित) विधि भी अक्षम कर देगी। इसे हल करने का कोई अच्छा तरीका नहीं है, लेकिन उदाहरण के लिए ऊपर (इस पल में), एडम से, इस पर एक बेहतर काम करता है।
एस.जे.

3

या enterमें दबाते समय फ़ॉर्म सबमिट को रोकने के लिएtextareainput क्षेत्र, क्या तत्व के प्रकार घटना भेजा लगाने के लिए घटना प्रस्तुत की जाँच करें।

उदाहरण 1

एचटीएमएल

<button type="submit" form="my-form">Submit</button>
<form id="my-form">
...
</form>

jQuery

$(document).on('submit', 'form', function(e) {
    if (e.delegateTarget.activeElement.type!=="submit") {
        e.preventDefault();
    }
});

एक बेहतर समाधान यह है कि अगर आपके पास सबमिट बटन नहीं है और आप एक सामान्य बटन के साथ घटना को फायर करते हैं। यह बेहतर है क्योंकि पहले परीक्षा 2 में जमा घटनाओं को निकाल दिया जाता है, लेकिन दूसरे उदाहरण में केवल 1 सबमिट घटना को निकाल दिया जाता है।

उदाहरण 2

एचटीएमएल

<button type="button" onclick="$('#my-form').submit();">Submit</button>
<form id="my-form">
...
</form>

jQuery

$(document).on('submit', 'form', function(e) {
    if (e.delegateTarget.activeElement.localName!=="button") {
        e.preventDefault();
    }
});

3

आपको यह अधिक सरल और उपयोगी लगेगा: डी

$(document).on('submit', 'form', function(e){
    /* on form submit find the trigger */
    if( $(e.delegateTarget.activeElement).not('input, textarea').length == 0 ){
        /* if the trigger is not between selectors list, return super false */
        e.preventDefault();
        return false;
    } 
});


2

कृपया इस लेख की जाँच करें कि वेब फ़ॉर्म जमा करने के लिए ENTER कुंजी को कैसे रोका जाए?

$(“.pc_prevent_submit”).ready(function() {
  $(window).keydown(function(event) {
    if (event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class=”pc_prevent_submit” action=”” method=”post”>
  <input type=”text” name=”username”>
  <input type=”password” name=”userpassword”>
  <input type=”submit” value=”submit”>
</form>


1

आप जावास्क्रिप्ट में एक फार्म पर कीपैड को फंसा सकते हैं और यहां तक ​​कि बुदबुदाहट को रोक सकते हैं, मुझे लगता है। एक वेबपेज पर दर्ज करें मूल रूप से सिर्फ उस फॉर्म को जमा करता है जिसे वर्तमान में चयनित नियंत्रण में रखा गया है।


एक नियंत्रण पर निर्भर करता है;) एक textarea में यह सिर्फ अगली पंक्ति के लिए ले जाता है। इसलिए, सभी 'एन्टर' कीपर्स इवेंट्स को पकड़ना एक अच्छा विचार नहीं है।
kender

संभवतः, लेकिन उस मामले में क्या फॉर्म में कोई भी बदलाव की घटना होगी?
नील बार्नवेल

आप इसे सीधे सभी इनपुट-टाइप-टेक्स्ट और अन्य समान नियंत्रणों पर करेंगे। यह एक दर्द का एक सा है और वास्तव में ज्यादातर मामलों में परेशान करने लायक नहीं है, लेकिन अगर आपको करना है ...
bobince

1

यह लिंक एक समाधान प्रदान करता है जो मेरे लिए Chrome, FF और IE9 प्लस में IE7 और 8 के लिए एमुलेटर का काम करता है जो IE9 के डेवलपर टूल (F12) के साथ आता है।

http://webcheatsheet.com/javascript/disable_enter_key.php


लिंक टूट जाने की स्थिति में, इस कोड को अपने पृष्ठ के शीर्ष लेख क्षेत्र में जोड़ें। <script type="text/javascript"> function stopRKey(evt) { var evt = (evt) ? evt : ((event) ? event : null); var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); if ((evt.keyCode == 13) && (node.type=="text")) {return false;} } document.onkeypress = stopRKey; </script>
मिका ५

1

एक अन्य तरीका यह है कि सबमिट इनपुट बटन को केवल फॉर्म में जमा करना है, जब इसे सबमिट किया जाना है और फॉर्म भरने के दौरान इसे साधारण डिव से बदलना है।


1

बस इस विशेषता को अपने FORM टैग में जोड़ें:

onsubmit="return gbCanSubmit;"

फिर, अपने SCRIPT टैग में, इसे जोड़ें:

var gbCanSubmit = false;

फिर, जब आप एक बटन बनाते हैं या किसी अन्य कारण से (जैसे किसी फ़ंक्शन में) आप अंततः सबमिट की अनुमति देते हैं, तो बस ग्लोबल बूलियन को फ्लिप करें और इस उदाहरण के समान .submit () कॉल करें:

function submitClick(){

  // error handler code goes here and return false if bad data

  // okay, proceed...
  gbCanSubmit = true;
  $('#myform').submit(); // jQuery example

}

1

मैं स्वयं इस पर आया हूं क्योंकि मेरे पास विभिन्न 'नाम' मानों के साथ कई सबमिट बटन हैं, ताकि जब वे सबमिट करें तो वे एक ही phx फ़ाइल पर अलग-अलग काम करें। उन मानों को सबमिट नहीं किए enterजाने के कारण / returnबटन इसे तोड़ देता है। तो मैं सोच रहा था, क्या enter/ returnबटन फॉर्म में पहला सबमिट बटन सक्रिय करता है? इस तरह से आपके पास एक 'वेनिला' सबमिट बटन हो सकता है, जो या तो छिपा हुआ है या उसमें 'नाम' का मान है, जो क्रियान्वित करने वाली php फ़ाइल को उस फॉर्म के साथ पृष्ठ पर वापस लौटाता है। या फिर एक डिफ़ॉल्ट (छिपा हुआ) 'नाम' मान जो कि कीप सक्रिय करता है, और सबमिट बटन अपने स्वयं के 'नाम' मानों के साथ अधिलेखित हो जाता है। सिर्फ एक विचार।


1

कैसा रहेगा:

<script>
function isok(e) {
  var name = e.explicitOriginalTarget.name;
  if (name == "button") {
    return true
  }
  return false;
}
</script>
<form onsubmit="return isok(event);">
<input type="text" name="serial"/>
<input type="submit" name="button" value="Create Thing"/>
</form>

और बस अपने बटन को सही नाम दें और यह अभी भी सबमिट होगा, लेकिन टेक्स्ट फ़ील्ड यानी स्पष्ट ऑरिजिनलटार्ग जब आप एक में रिटर्न मारते हैं, तो सही नाम नहीं होगा।


0

इसने मेरे लिए काम किया।
onkeydown = "वापसी! (event.keyCode == 13)"

    <form id="form1" runat="server" onkeydown="return !(event.keyCode==13)">

   </form>

1
यदि आपके पास टेक्स्टारिया है, तो आप उसी रूप में दर्ज करने के लिए अगली पंक्ति पर नहीं जा सकते हैं
आमिर अफरीदी


-1

जावास्क्रिप्ट बाहरी फ़ाइल में डाल दिया

   (function ($) {
 $(window).keydown(function (event) {  

    if (event.keyCode == 13) {

        return false;
    }
});

 })(jQuery);

या शरीर के अंदर कहीं टैग

<script>


$(document).ready(function() {
    $(window).keydown(function(event) {
        alert(1);

        if(event.keyCode == 13) {

            return false;
        }
    });
});

</script>

-2

मुझे एक ही समस्या थी (पाठ फ़ील्ड और अकुशल उपयोगकर्ताओं के टन के साथ प्रपत्र)।

मैंने इसे इस तरह हल किया:

function chkSubmit() {
    if (window.confirm('Do you want to store the data?')) {
        return true;
    } else {
        // some code to focus on a specific field
        return false;
    }
}

HTML कोड में इसका उपयोग करना:

<form
    action="go.php" 
    method="post"
    accept-charset="utf-8"  
    enctype="multipart/form-data"
    onsubmit="return chkSubmit()"
>

इस तरह ENTERमुख्य योजना के अनुसार काम करता है, लेकिन एक पुष्टिकरण (एक दूसरा ENTERनल, आमतौर पर) की आवश्यकता होती है।

मैं पाठकों को एक स्क्रिप्ट के लिए खोज छोड़ता हूं, जहां वह उपयोगकर्ता को उस क्षेत्र में भेज रहा है, जहां उसने ENTERफॉर्म पर रहने का फैसला किया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.