কীভাবে একটি ওয়েব ফর্ম জমা দেওয়ার জন্য কী কী চাপুন?


207

ENTERওয়েব-ভিত্তিক অ্যাপ্লিকেশনটিতে কোনও কী প্রেসকে কোনও ফর্ম জমা দেওয়া থেকে আপনি কীভাবে আটকাবেন?

উত্তর:


99

[ পুনর্বিবেচনা ২০১২, কোনও ইনলাইন হ্যান্ডলার নেই, সংরক্ষণের পাঠ্যক্রম সংরক্ষণ করুন]

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;
}

এখন আপনি ফর্মটিতে একটি কীপ্রেস হ্যান্ডলারটি সংজ্ঞায়িত করতে পারেন:
<ফর্ম [...] onkeypress = "চেক রিটার্ন (ইভেন্ট)">>

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

3
উপায় দ্বারা: আপনি টেক্সেরিয়া বাদ দিতে চেকইন্টার ফাংশনে ইনপুট টাইপের (ইভেন্ট উত্সের মাধ্যমে) জন্য একটি চেক যুক্ত করতে পারেন।
KooiInc

1
কাজ করে। আমি এটিকে একটি একক ইনপুটতে যুক্ত করেছি কারণ আমি <enter> ফর্ম জমা দেওয়া থেকে বাঁচতে চেয়েছিলাম। অভ্যন্তরীণ অনুসন্ধান করার জন্য এটিতে একটি বোতাম ছিল এবং এটি বাস্তবে ব্যবহারযোগ্যতা উন্নত করে।
ফক্সিনি

1
এই পদ্ধতির সাথে একটি সমস্যা (পুরো ফর্মটিতে ইভেন্ট হ্যান্ডলারের সাথে এই ফাংশনটি ব্যবহার করা) হ'ল এটি ফর্মের মধ্যেও টেক্সারিয়াসে প্রবেশ করা থেকে বিরত থাকে (যেখানে প্রবেশকারীরা সাধারণত পছন্দসই হয়)।
লনি সেরা

1
@ লনিবেস্ট: লক্ষ্য করার জন্য ধন্যবাদ আপনি হয়নি এই উত্তরে আমার মন্তব্য পড়তে (উপরে দেখুন), আপনি কীভাবে দেখছেন? যাইহোক, আমি এটি বরং পুরানো উত্তরটি সংশোধন করেছি।
KooiInc

1
@ জোনাথন: আপনি পুরো ফর্মের স্থলে একক ইনপুট ক্ষেত্র বা ইনপুট ক্ষেত্রগুলির সংকলন (তবে বোতামগুলি নয়) এমন কিছু ডিভের সাথে হ্যান্ডলারটি সংযুক্ত করতে পারেন।
KooiInc

57

এখানে একটি jQuery হ্যান্ডলার যা জমা দেওয়া প্রবেশ বন্ধ করতে এবং ব্যাকস্পেস কী -> পিছনে থামাতে ব্যবহৃত হতে পারে। "কীসটপ" অবজেক্টের (কীকড: সিলেক্টরস্ট্রিং) জোড়া নোডগুলির সাথে মেলে যা তাদের ডিফল্ট ক্রিয়াকলাপটি নিষ্ক্রিয় করা উচিত নয়।

মনে রাখবেন যে ওয়েবটি একটি অ্যাক্সেসযোগ্য জায়গা হওয়া উচিত এবং এটি কীবোর্ড ব্যবহারকারীদের প্রত্যাশা ভঙ্গ করছে। এটি বলেছিল যে, আমার ক্ষেত্রে যে ওয়েব অ্যাপ্লিকেশনটিতে আমি কাজ করছি তা পিছনের বোতামটি যাইহোক পছন্দ করে না, সুতরাং এর কী শর্টকাটটি অক্ষম করা ঠিক is "প্রবেশ করা উচিত -> জমা দিন" আলোচনাটি গুরুত্বপূর্ণ তবে জিজ্ঞাসিত প্রকৃত প্রশ্নের সাথে সম্পর্কিত নয়।

অ্যাক্সেসযোগ্যতা এবং আপনি কেন এটি করতে চান তা সম্পর্কে চিন্তা করার জন্য এই কোডটি এখানে!

$(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
সরল উপায়ে: $ ("# মাইনপুট") key কীটি হ'ল "কীডাউন" এবং ইভেন্ট.প্রিভেন্টডিফল্ট () একসাথে ব্যবহার করা। এটি "কীআপ" দিয়ে কাজ করে না।
লিপ

ব্রাউজারের অটো-পরামর্শটি সঠিকভাবে কাজ করা চালিয়ে যাবে এমন কী 13 টি ব্লক করে এমন অন্যান্য সমাধানগুলির চেয়ে এটির সুবিধা রয়েছে।
jsalvata

52

অনসামিত হ্যান্ডলার থেকে কেবল মিথ্যা ফিরিয়ে দিন

<form onsubmit="return false;">

বা আপনি যদি মাঝখানে কোনও হ্যান্ডলার চান

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

5
এটি সহজ উত্তর বলে মনে হচ্ছে। আমি গুগল ক্রোমে এটি চেষ্টা করেছি এবং এটি ঠিকঠাক কাজ করে। আপনি কি প্রতিটি ব্রাউজারে এটি পরীক্ষা করেছেন?
স্টাইফেল

22
আপনি যদি submitবোতাম টিপে আপনার ফর্মটি জমা দিতে চান তবে এটি ভাল ধারণা নয়
AliBZ

13
কাজ করে না কারণ জমা বোতামটি আর ফর্মটি জমা দেয় না
পলব্লাব

39
@ পল, এটি কীভাবে ৩৮ টি উপার্জন পেয়েছে? আদৌ<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একই প্রান্তটি অর্জন করবে তবে ইভেন্টটিকে পিতামণ্ডলের উপাদানগুলিতে হ্যান্ডলারের কাছে পৌঁছানোর অনুমতি দিন। ডিফল্ট ক্রিয়া (ফর্ম সমীকরণ) এখনও প্রতিরোধ করা হবে
14:41 এ উইলস্ক্রিপ্ট করা

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
ই একটি আর্গুমেন্ট হওয়া উচিত এবং তারপরে আপনার উইন্ডো.ইভেন্টের জন্য পরীক্ষা করা উচিত। এছাড়াও, ইভেন্টটি থেকে আপনার কীকোডটি পাওয়া উচিত। অবশেষে, আপনার মিথ্যা প্রত্যাবর্তন করা উচিত।
ntownsend

9
এই ফাংশনটি কোথায় এবং কীভাবে কল করবেন তা দয়া করে ব্যাখ্যা করতে পারেন?
mydoghasworms

17

ENTER কী কেবলমাত্র ফর্মটির ডিফল্ট জমা বোতামটি সক্রিয় করে, যা প্রথমটি হবে

<input type="submit" />

ব্রাউজারটি ফর্মের মধ্যে খুঁজে পায়।

অতএব সাবমিট বাটন নেই, তবে এর মতো কিছু something

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

সম্পাদনা : মন্তব্যে আলোচনার জবাবে:

আপনার যদি কেবল একটি পাঠ্য ক্ষেত্র থাকে তবে এটি কাজ করে না - তবে এটি হতে পারে সেই ক্ষেত্রে এটি পছন্দসই আচরণ।

অন্য সমস্যাটি হ'ল এটি ফর্মটি জমা দেওয়ার জন্য জাভাস্ক্রিপ্টের উপর নির্ভর করে। এটি অ্যাক্সেসযোগ্যতার দৃষ্টিকোণ থেকে সমস্যা হতে পারে। এটি <input type='button'/>জাভাস্ক্রিপ্ট সহ লেখার মাধ্যমে সমাধান করা যেতে পারে এবং তারপরে <input type='submit' />একটি <noscript>ট্যাগের মধ্যে রেখে put এই পদ্ধতির অপূর্ণতা জাভাস্ক্রিপ্ট-অক্ষম ব্রাউজারগুলির জন্য তারপরে ENTER এ ফর্ম জমা দিতে হবে। এক্ষেত্রে কাঙ্ক্ষিত আচরণ কী তা সিদ্ধান্ত নেওয়ার বিষয়টি ওপির উপর নির্ভর করে।

আমি জাভাস্ক্রিপ্ট মোটেও আমন্ত্রণ না করে এটি করার কোনও উপায় জানি না।


অদ্ভুতভাবে শুধুমাত্র একটি ক্ষেত্র থাকলে ফায়ারফক্সে এটি কাজ করে না।
ড্যানসিংগারম্যান

5
অ্যাক্সেসযোগ্যতার জন্য ভয়ঙ্কর? হতে পারে. তবে এটি তাদের ছেলের প্রশ্নের উত্তর দেয় যা এসও এর পক্ষে কী ... অ্যাক্সেসযোগ্যতার সমস্যাটি উল্লেখ করার উত্তরে একটি সম্পাদনা করা কি একটি ভাল আপস?
নীল বার্নওয়েল

1
@ ববিন্স - অ্যাক্সেসযোগ্যতার কারণে প্রশ্নটি -1 প্রাপ্য, তবে এই প্রশ্নের সঠিক উত্তর? এমন ভাববেন না। এছাড়াও, বৈধ ব্যবহারের কেস রয়েছে যেখানে আপনি এটি করতে চান।
ড্যানসিংগারম্যান

জাভা স্ক্রিপ্ট ব্যতীত আপনার ফর্মটি জমা দেওয়ার পক্ষে অসম্ভব হয়ে ওঠার দরকার নেই, যদিও, এএইচ। এটি যদি এটি কাজ করে তবে এটি এটি নয় কারণ ব্রাউজারগুলি আনন্দের সাথে এমন একটি ফর্ম জমা দেবে যাতে কোনও সাবমিট-বাটন নেই।
বোবিনস

2
একটি পাঠ্য ইনপুট এবং একটি ইনপুট-বোতামের সাহায্যে প্লাস অপেরা সকলের মধ্যে পরীক্ষিত: সমস্ত এখনও ফর্মটি এন্টারটিতে জমা দিয়েছে। প্রবেশের সমস্যাটি 'সমাধান' করার জন্য আপনার স্পষ্টতই জাভাস্ক্রিপ্টের প্রয়োজন, তবে কৌশলটি হ'ল জেএস অনুপলব্ধ যেখানে পৃষ্ঠাটি সম্পূর্ণরূপে অক্ষম করে তুলবেন না।
ববিনস

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
এটি সবচেয়ে কার্যকর এবং সংস্থান-বান্ধব সমাধান। আপনাকে ধন্যবাদ আলেকজান্দ্রেপায়ার্সকে ধন্যবাদ! : এখানে আমার সম্পূর্ণ পরিশ্রমী স্ক্রিপ্ট হয় stackoverflow.com/a/40686327/1589669
eapo

1
একমাত্র কার্যক্ষম সমাধান; অন্তত আমার পরিস্থিতিতে।
hex494D49

9

আমি এখানে বা অন্যান্য পোস্টে এই বিষয়ে যে সমস্ত উত্তর পেয়েছি তার মধ্যে একটি ত্রুটি রয়েছে এবং তা হ'ল এটি ফর্ম উপাদানটিতেও প্রকৃত পরিবর্তন ট্রিগারকে বাধা দেয়। সুতরাং আপনি যদি এই সমাধানগুলি চালনা করেন তবে ওনিচ ইভেন্টটিও ট্রিগার হবে না। এই সমস্যাটি কাটিয়ে উঠতে আমি এই কোডগুলি সংশোধন করেছি এবং নিজের জন্য নিম্নলিখিত কোডগুলি বিকাশ করেছি। আমি আশা করি এটি অন্যের জন্য দরকারী হয়ে উঠবে। আমি আমার ফর্ম "প্রতিরোধ_আউট_সাম্বিত" এ একটি ক্লাস দিয়েছি এবং নিম্নলিখিত জাভাস্ক্রিপ্ট যুক্ত করেছি:

$(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
সাধারণত আমি হ্যাক পছন্দ করি না, তবে এটি সত্যই কার্যকর।
টেকউইসডম

1
ডিভটি অপসারণ এবং ইনপুটটিতে কেবল অ্যাট্রি লাগানো আরও hiddenকম হবে। চমৎকার হ্যাক :)
নিক

5

আমি IE8,9,10, অপেরা 9+, ফায়ারফক্স 23, সাফারি (পিসি) এবং সাফারি (ম্যাক) এর জন্য এই ক্রস ব্রাউজারটি তৈরি করতে কিছু সময় ব্যয় করেছি

জেএসফিডাল উদাহরণ: http://jsfiddle.net/greatbigmassive/ZyeHe/

বেস কোড - এই ফাংশনটি আপনার ফর্মের সাথে সংযুক্ত "অনকাইপ্রেস" এর মাধ্যমে কল করুন এবং এতে "উইন্ডো.ভেন্ত" পাস করুন।

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);">

যদিও, আপনি যদি বাধা জাভাস্ক্রিপ্ট ব্যবহার না করেন তবে এটি আরও ভাল।


আমি এই সংস্করণটি পছন্দ করি কারণ এটি @ হ্যাশ এর চেয়ে বেশি পঠনযোগ্য। যদিও একটি সমস্যা, আপনার "যদি (কী (কোডকোড == 13)" ব্লকের মধ্যে মিথ্যা প্রত্যাবর্তন করা উচিত। আপনার কাছে যেমন রয়েছে, এই ফাংশনটি ক্ষেত্রে কোনও কীবোর্ড ইনপুটটিকে বাধা দেয়। এছাড়াও @ হ্যাশ এর সংস্করণে e.keyCode, e.Wich, এবং e.charCode রয়েছে ... নিশ্চিত নয় যে e.charCode গুরুত্বপূর্ণ কিনা তবে আমি তা যাইহোক সেখানে রেখেছি: "var keycode = eve.keyCode || ইভটিভ || যা || eve.charCode; "।
জ্যাক সেনাচাল

ধন্যবাদ, জ্যাক আমি উত্তরটি চেক করার জন্য সম্পাদনা করেছি charCode। আমি return falseযদি ইফ-ব্লকের ভিতরেও স্থানান্তরিত করেছি । ভালো বল ধরা.
ntownsend

3

আমার ক্ষেত্রে, এই jQuery জাভাস্ক্রিপ্ট সমস্যার সমাধান করেছে

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

দুর্দান্ত, ধন্যবাদ @ কির্বি! এন্টার কীটি এখন ফর্মটিতে অক্ষম থাকায় আপনি কীভাবে <input>ফর্মের মধ্যে সমস্ত ক্ষেত্রের জন্য প্রবেশ কী সক্ষম করতে পারেন ?
ইয়ান ক্যাম্পবেল

3

ফর্ম জমা দেওয়ার জন্য "ENTER" রোধ করা আপনার ব্যবহারকারীদের কিছু অসুবিধে করতে পারে। সুতরাং আপনি নীচের পদ্ধতিটি অনুসরণ করলে এটি আরও ভাল হবে:

আপনার ফর্ম ট্যাগে 'অন সাবমিট' ইভেন্টটি লিখুন:

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

জাভাস্ক্রিপ্ট ফাংশন নীচে লিখুন:

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

     } 

     (OR)

কারণটি কি, যদি আপনি এন্টার কী টিপে ফর্ম জমাটি আটকাতে চান তবে জাভাস্ক্রিপ্টে নিম্নলিখিত ফাংশনটি লিখতে পারেন:

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

ধন্যবাদ।


3

এই ফর্মটি আপনার ফর্মটিতে যুক্ত করুন - onsubmit="return false;" তারপরে আপনি কিছু জাভাস্ক্রিপ্ট ফাংশন দিয়ে কেবল আপনার ফর্মটি জমা দিতে পারেন।


ওপি (যারা এই ব্রাউজারের বৈশিষ্ট্যটির দ্বারা দংশিত করেছেন তাদের অধিকাংশের মতো) সম্ভবত এখনও মাউস ক্লিক দিয়ে জমা দেওয়ার অনুমতি দিতে চেয়েছিল, যা এই (দুর্ভাগ্যক্রমে প্রায়ই প্রস্তাবিত) পদ্ধতিটি অক্ষম করে। এটি সমাধানের জন্য খুব ভাল উপায় নেই, তবে উদাহরণস্বরূপ উপরের উত্তর (এই মুহুর্তে) অ্যাডামের কাছ থেকে এটি আরও ভাল কাজ করে।
জেড

3

enterকোনও textareaবা inputক্ষেত্রের মধ্যে টিপে ফর্ম জমা প্রতিরোধ করতে , ইভেন্টটি কী ধরণের উপাদান প্রেরণ করেছে তা সন্ধানের জন্য জমা দিন যাচাই করুন।

উদাহরণ 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

আপনি জাভাস্ক্রিপ্টে একটি ফর্মের কীডাউনটি আটকাতে এবং এমনকি বুদবুদ প্রতিরোধ করতে পারেন, আমি মনে করি। একটি ওয়েবপৃষ্ঠায় ENTER মূলত কেবলমাত্র নির্বাচিত নিয়ন্ত্রণটি ফর্মটি জমা দেয়।


একটি নিয়ন্ত্রণের উপর নির্ভর করে;) একটি টেক্সারিয়াতে এটি কেবল পরবর্তী লাইনে চলে যায়। সুতরাং, সমস্ত 'এন্টার' কীপ্রেস ইভেন্টগুলি ধরা ভাল ধারণা নয়।
kender

সম্ভবত, তবে সেই ক্ষেত্রে ফর্মটির কী কীডাউন ইভেন্ট হবে?
নীল বার্নওয়েল

আপনি সরাসরি সমস্ত ইনপুট-টাইপ-পাঠ্য এবং অন্যান্য অনুরূপ নিয়ন্ত্রণগুলিতে এটি করতে পারেন। এটি বেশ কিছুটা ব্যথা এবং বেশিরভাগ ক্ষেত্রেই বিরক্ত করার মতো নয়, তবে যদি আপনাকে ...
ববিন্স

1

এই লিঙ্কটি এমন একটি সমাধান সরবরাহ করে যা ক্রোম, এফএফ এবং আই 99 প্লাস আই 7 এবং 8 এর এমুলেটর যা আই 9 এর বিকাশকারী সরঞ্জাম (এফ 12) এর সাথে আসে।

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

আপনার ফর্ম ট্যাগটিতে এই বৈশিষ্ট্যটি কেবল যুক্ত করুন:

onsubmit="return gbCanSubmit;"

তারপরে, আপনার স্ক্রিপ্ট ট্যাগে এটি যুক্ত করুন:

var gbCanSubmit = false;

তারপরে, আপনি যখন কোনও বোতাম তৈরি করেন বা অন্য কোনও কারণে (যেমন কোনও ফাংশন হিসাবে) আপনি শেষ পর্যন্ত কোনও জমা দেওয়ার অনুমতি দেন, কেবলমাত্র গ্লোবাল বুলেটিয়ানটি ফ্লিপ করুন এবং এই উদাহরণের অনুরূপ একটি। সাবমিট () কল করুন:

function submitClick(){

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

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

}

1

আমি নিজেই এটি জুড়ে এসেছি কারণ আমার কাছে বিভিন্ন 'নাম' মান সহ একাধিক জমা বোতাম রয়েছে, যাতে জমা দেওয়ার পরে তারা একই পিএইচপি ফাইলে বিভিন্ন জিনিস করে। enter/ returnসেই মান হিসাবে বোতাম বিরতি এই পেশ করা হয় না। সুতরাং আমি ভাবছিলাম, enter/ returnবাটনটি কি ফর্মের প্রথম জমা বোতামটি সক্রিয় করে? এইভাবে আপনার কাছে 'ভ্যানিলা' জমা দেওয়ার বোতাম থাকতে পারে যা হয় লুকানো থাকে বা একটি 'নাম' মান থাকতে পারে যা নির্বাহী পিএইচপি ফাইলটিকে ফর্মের সাথে পৃষ্ঠায় ফিরিয়ে দেয়। অথবা অন্যথায় কোনও ডিফল্ট (লুকানো) 'নাম' মান যা কীটিপ্রেস সক্রিয় করে, এবং জমা বোতামগুলি তাদের নিজস্ব 'নাম' মান দিয়ে ওভাররাইট করে। শুধু একটি ভাবনা.


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

এটি আমার পক্ষে কাজ করেছে।
অনকিডাউন = "রিটার্ন! (ইভেন্ট.কি কোড == ১৩)"

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

   </form>

1
আপনার যদি টেক্সটরিয়া থাকে তবে আপনি একই ফর্মে প্রবেশের পরবর্তী লাইনে উঠতে পারবেন না
আমির আফ্রিদি

0

আমি এটি কীভাবে করব তা এখানে:

window.addEventListener('keydown', function(event)
{
    if (event.key === "Enter")
    {
        if(event.target.type !== 'submit')
        {
            event.preventDefault();
            return false;
        }
    }
}

-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;
    }
}

এটি এইচটিএমএল কোডে ব্যবহার করে:

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

এইভাবে ENTERকীটি পরিকল্পনা অনুযায়ী কাজ করে তবে একটি নিশ্চিতকরণ (একটি দ্বিতীয় ENTERট্যাপ, সাধারণত) প্রয়োজন হয়।

আমি ENTERফর্মটিতে থাকার সিদ্ধান্ত নেন কিনা সে ক্ষেত্রে চাপ দেওয়ার জন্য ব্যবহারকারীকে সেই ক্ষেত্রে যেখানে তিনি চাপ দিয়েছিলেন সেখানে কোনও স্ক্রিপ্ট প্রেরণের জন্য অনুসন্ধান পাঠকদের কাছে ছেড়ে চলেছি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.