বিভিন্ন ইনপুট এন্টার কী টিপলে বাটন ক্লিক ইভেন্ট গুলিতে ক্লিক করুন (কোনও রূপ নেই)


111

"পরিমাণ" ইনপুটটিতে "এন্টার" টিপানোর সময় এই যুক্তিটি প্রকাশিত হচ্ছে এবং আমি বিশ্বাস করি না এটি হওয়া উচিত (এটি ক্রোমে নেই)। আমি কীভাবে এটি প্রতিরোধ করতে পারি, এবং যদি এটি আইই তে প্রতিরোধ না করে তবে এটি পরিচালনা করুন যাতে ক্লিক ইভেন্টের যুক্তিটি আগত না হয়।

<html>
 <body>
   <div id="page">
     <div id="financed_amount">
      <h1>Financed Amount:</h1>
      <input type="text" id="amount" value="" />
     </div>
     <h1>Finance Options</h1>
     <div>
      <a id="shareLink" rel="leanModal" name="email" href="#email"></a>
      <button id="btnShare" class="share">Share this report</button>
     </div>
    </div>
   </body>
</html>

লিপি

$("#btnShare").click(function (e) {
    // This logic is firing when pressing "Enter" in the "Amount" input
});
  • জ্যাকোয়ারি: ১.7.২
  • আইই 9
  • (ক্রোমে কাজ করে)

1
প্রশ্নের বিপরীতে, ক্রোম এবং ফায়ারফক্সের সাথে আমার সাথে এটি ঘটেছিল। যদিও একই বোতাম (বোতামের ধরণ)।
টিম গ্রান্ট

উত্তর:


324

আমার একই সমস্যা ছিল এবং এটির type="button"সাথে <button>উপাদানটির বৈশিষ্ট্য যুক্ত করে সমাধান করেছি , যার মাধ্যমে আইই বোতামটি সাবমিট বোতামের পরিবর্তে (যা কোনও <button>উপাদানের ডিফল্ট আচরণ ) এর পরিবর্তে একটি সাধারণ বোতাম হিসাবে বিবেচনা করে ।


6
ফায়ারফক্সেও আমার একই সমস্যা ছিল। টাইপ = "বোতাম" বৈশিষ্ট্যটি এটি আমার জন্যও সমাধান করেছে
আলেকজান্ডার ফ্রেডিয়ানী

109
আপনি হাজার বছর বেঁচে থাকতে পারেন।
দ্য ব্রেন

4
দুর্দান্ত ফিক্স। আমি ভেবেছিলাম ব্রাউজারগুলি <ফর্ম> ট্যাগের অভ্যন্তরে কেবল "এন্টার" এ স্বয়ংক্রিয়ভাবে জমা দেবে। তবে আমি দেখি আমার ভুল ছিল।
ক্লেটন বেল

2
আই 9 এর চিৎকারের দিনগুলি (আমার সাধারণ চিৎকারের মধ্যে আমার কাছে চিৎকার করতে হবে) এবং এটিই ছিল সমাধান। গরম ডাং
ফটস্কট

5
মাত্র দু'সপ্তাহে দু'বার এই ইস্যুতে কামড়েছে। type="button"কোনও <button>উপাদানকে ডেকে আওয়াতে কেবল বেআইনি বোধ হয় । হা হা ... :) আশা করি আমি এটি পরবর্তী সময়ের জন্য মনে রাখব।
স্যাম

32

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

আপনাকে অবশ্যই প্রতিরোধের ডিফল্ট () এর মাধ্যমে আই এর ডিফল্ট আচরণকে ওভাররাইড করতে হবে। আপনার jQuery নির্বাচকটিতে, ডিভের মধ্যে রাখুন যাতে আপনি প্রবেশ কীটিকে অগ্রাহ্য করতে চান এমন পাঠ্য বাক্সগুলি থাকে - আপনার ক্ষেত্রে, "পৃষ্ঠা" বিভাগ। পুরো ডিভটি নির্বাচন করার পরিবর্তে আপনি যে পাঠ্য বাক্সগুলিকে বিশেষভাবে উপেক্ষা করতে চান তা নির্দিষ্ট করে দিতে পারেন।

$('#page').keypress(function(e) {
    if(e.which == 13) { // Checks for the enter key
        e.preventDefault(); // Stops IE from triggering the button to be clicked
    }
});

কাস্টম সংক্ষেপগুলি ব্যবহার করার দরকার পরে সেরা সমাধান এবং আপনি টাইপ = "বোতাম" যুক্ত করতে পারবেন না।
ফায়ার জেনেক

ধন্যবাদ ক্লিনটন, এটি আমার পক্ষে কাজ করেছিল। আমি প্রথমে "বোতাম" টাইপের সমস্ত বোতাম তৈরি করার চেষ্টা করেছি এখনও এটি কার্যকর হয়নি। তারপরে আমাকে এন্টার কী টিপে ইভেন্ট বুদবুদ দমন করতে হয়েছিল।
রূপেশ কুমার তিওয়ারি

তোমাকে অনেক ধন্যবাদ. আমি গত 2 ঘন্টা ধরে আমার কম্পিউটারে র‌্যাগ করছি।
এডউইন

4

আমি এএসপি.নেট ওয়েব ফর্মগুলির সাথে এই সমস্যাটি নিয়েছিলাম:

<asp:Button />

এটি কেবল টাইপ = "বোতাম" যুক্ত করে সমাধান করা যায় না কারণ এএসপি.এনইটি এটি = টাইপ = "জমা" দিয়ে প্রতিস্থাপন করে (আপনি যদি উপাদানটি পরীক্ষা করেন তবে আপনি ব্রাউজারে এই আচরণটি দেখতে পারেন))

এএসপনেটে এটি করার সঠিক উপায়টি যুক্ত করা

<asp:Button UseSubmitBehavior="false" />

বোতামে। এএসপি স্বয়ংক্রিয়ভাবে টাইপ = "বোতাম" বৈশিষ্ট্য যুক্ত করবে।


2

আইআই মনে করে যে কোনও buttonউপাদান একটি সাবমিট বাটন (আপনার কাছে আছে formবা না আছে)। এটি Enterএকটি অন্তর্নিহিত ফর্ম জমা হিসাবে কোনও ফর্ম উপাদানটিতে কীটির টিপুনও পরিচালনা করে । সুতরাং, যেহেতু এটি মনে করে যে আপনি নিজের ফর্মটি জমা দেওয়ার চেষ্টা করছেন, সুতরাং এটির সাহায্যে এটি আপনাকে সহায়তা করবে এবং জমা দেওয়ার বোতামটি click(যা এটি মনে করে) তা ফায়ার করবে ।

আপনি keyupহয় inputবা এর সাথে একটি ইভেন্ট সংযুক্ত করতে পারেন buttonএবং Enterকী ( e.which === 13) এবংreturn false;


1

একটি jQuery ভিত্তিক সমাধান যা প্রতিটি বোতামের জন্য এটি করে:

 $('button').prop('type', 'button'); // To prevent IE from treating every button as a submit and firing a click() event

তবে ক্লিক ইভেন্টটি এখনও কিছু কারণে পিতামাতাদের কাছে বুদবুদ করবে ...


0

ক্রোমের জন্য আপনি যুক্ত করতে পারেন <button type="submit" style="display:none"/> কারণ ক্রোম ডিফল্ট বোতামের ধরণটি "জমা দিন"

আই আই এর জন্য, আমি এটির সাথে চেষ্টা করার চেষ্টা করেছি type="button" (আইই ডিফল্ট বোতামের ধরণটি "বোতাম") তবে ভালভাবে কাজ করে নি।

সুতরাং সমাধান এখানে। এইচটিএমএলে (keypress)=xxx($event)আপনার ফর্মটি যুক্ত করুন। টিএসে,

xxx(event) {
 if(event.key === 'Enter' && event.target.type !== 'submit')
event.preventDefault():
}

উপরের ক্রস ব্রাউজারগুলি, সাধারণ ক্লিক এবং ট্যাব প্রবাহের মতো সমস্ত পরিস্থিতিতে কাজ করবে।

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