কী কীওয়ারি ব্যবহার করে কীবোর্ডে এন্টার টিপুন কীভাবে সনাক্ত করবেন?


731

ব্যবহারকারী EnterjQuery ব্যবহার করে চাপা দিয়েছেন কিনা তা আমি সনাক্ত করতে চাই ।

এটা কিভাবে সম্ভব? এটি কি একটি প্লাগইন প্রয়োজন?

সম্পাদনা: দেখে মনে হচ্ছে keypress()পদ্ধতিটি আমার ব্যবহার করা দরকার ।

আমি জানতে চেয়েছিলাম যে সেই কমান্ডটিতে ব্রাউজারের সমস্যা আছে কিনা তা যদি কেউ জানে - যেমন আমার সম্পর্কে জানা উচিত এমন কোনও ব্রাউজারের সামঞ্জস্যতার সমস্যা আছে কি?



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

2
কেবলমাত্র ব্রাউজারের সামঞ্জস্যের সমস্যাটি হ'ল আসকি কোড সনাক্ত করতে আপনার e.keyCode এর পরিবর্তে e.Wich ব্যবহার করা উচিত।
ড্যানিয়েল

উত্তর:


1330

JQuery এর পুরো বিষয়টি হ'ল আপনাকে ব্রাউজারের পার্থক্য সম্পর্কে চিন্তা করতে হবে না। আমি নিশ্চিত যে আপনি enterসমস্ত ব্রাউজারে 13 টির সাথে নিরাপদে যেতে পারবেন । তাই মনে রেখে, আপনি এটি করতে পারেন:

$(document).on('keypress',function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

7
আমি এটির সাথে লিঙ্ক করছি কারণ আমি এটি পড়েছি এবং কীপ্রেস আইইয়ের সাথে কেন কাজ করে না সে সম্পর্কে আমার মাথা আঁচড়ানো ছেড়ে চলেছে। (এটি আইআই এর সাথে আবদ্ধ হবে না $(window)) quirksmode.org/dom/events/keys.html
ছদ্মবেশী

17
e.keyCode 100% ক্রস ব্রাউজার নয়। পরিবর্তে নীচে প্রদর্শিত হিসাবে e. যা ব্যবহার করুন
ড্যানিয়েল

15
JQuery ডকুমেন্টেশন থেকে "ইভেন্ট। যা সম্পত্তি ইভেন্ট.কি কোড এবং ইভেন্ট কোডারকোডকে স্বাভাবিক করে তোলে keyboard কীবোর্ড কী ইনপুটটির জন্য ইভেন্টটি দেখার পরামর্শ দেওয়া হয়।"
রিকার্ডো গ্যালি

20
document (দস্তাবেজ) .অন ('
কীপ্রেস

5
ইভেন্ট প্রচারের কারণে আমি প্রদত্ত ফাংশনটির একাধিক মৃত্যুদণ্ড পাচ্ছি (যেমন, সতর্কতাটি দুটিবার নিক্ষেপ করা হচ্ছে)। এটি বন্ধ করতে, ফাংশন শেষে একটি e.stopPropagation () যুক্ত করুন
dpb

129

"চাপানো এন্টার কী" ইভেন্টটিকে আবদ্ধ করা সহজ করার জন্য আমি একটি ছোট প্লাগইন লিখেছি:

$.fn.enterKey = function (fnc) {
    return this.each(function () {
        $(this).keypress(function (ev) {
            var keycode = (ev.keyCode ? ev.keyCode : ev.which);
            if (keycode == '13') {
                fnc.call(this, ev);
            }
        })
    })
}

ব্যবহার:

$("#input").enterKey(function () {
    alert('Enter!');
})

আমার জন্য এই করে না কাজ (আমি পেয়েছি #inputউপর <input>ক্ষেত্র)
Rápli András

1
# ইনপুট উপাদান গতিশীল হবে কি হবে?
জিগার 7521

@ এমপ্লুংজান নিশ্চিত করছেন না যে আপনি "ডেলিগেট" দিয়ে কী বোঝাতে চেয়েছেন
আন্দ্রে

$("#input").on("someevent","someselector",function () {})
এমপি্লুঞ্জন

62

আমি @ পাওলো বার্গান্টিনো পোস্ট করা কোডটি কাজ করতে পারিনি তবে যখন আমি এটিকে পরিবর্তিত করেছি $(document)এবং e.whichতার পরিবর্তে e.keyCodeআমি এটি নির্দোষভাবে কাজ করতে পেলাম।

$(document).keypress(function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

জেএস বিনের উদাহরণের লিঙ্ক


আমার জন্য ই। যা আইইয়ের সাথে কাজ করে না। এটি কি অন্যের পক্ষে কাজ করে?
উমেশ রাজভান্ডারী

আইই এর কোন সংস্করণ? আই 7 এ আমার জন্য সূক্ষ্ম কাজ করে।
ইয়ান রোকে

JQuery ডকুমেন্টেশন থেকে "ইভেন্ট। যা সম্পত্তি ইভেন্ট.কি কোড এবং ইভেন্ট কোডারকোডকে স্বাভাবিক করে তোলে keyboard কীবোর্ড কী ইনপুটটির জন্য ইভেন্টটি দেখার পরামর্শ দেওয়া হয়।"
রিকার্ডো গ্যালি

52

আমি এটি আরও ক্রস ব্রাউজারের সাথে সামঞ্জস্যপূর্ণ বলে মনে করেছি:

$(document).keypress(function(event) {
    var keycode = event.keyCode || event.which;
    if(keycode == '13') {
        alert('You pressed a "enter" key in somewhere');    
    }
});

1
আপনার টার্নারি আইএফটি সংক্ষিপ্ত করা যেতে পারে: var কীকোড = ইভেন্ট.কি কোড event.which;
পিস্তল-পিট

29

আপনি jquery 'কীডাউন' ইভেন্ট হ্যান্ডেল ব্যবহার করে এটি করতে পারেন

   $( "#start" ).on( "keydown", function(event) {
      if(event.which == 13) 
         alert("Entered!");
    });


9

আমি এই সমাধানটি নিয়ে কিছুটা সময় কাটিয়েছি আশা করি এটি কাউকে সহায়তা করে।

$(document).ready(function(){

  $('#loginforms').keypress(function(e) {
    if (e.which == 13) {
    //e.preventDefault();
    alert('login pressed');
    }
  });

 $('#signupforms').keypress(function(e) {
    if (e.which == 13) {
      //e.preventDefault();
      alert('register');
    }
  });

});


7

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

$('textarea').enterKey(function() {$(this).closest('form').submit(); }, 'ctrl')

কোনও ফর্ম জমা দেওয়ার জন্য যখন ব্যবহারকারী সেই ফর্মের টেক্সারিয়ায় ফোকাস সহ সিটিআরএল-এন্টার টিপান।

$.fn.enterKey = function (fnc, mod) {
    return this.each(function () {
        $(this).keypress(function (ev) {
            var keycode = (ev.keyCode ? ev.keyCode : ev.which);
            if ((keycode == '13' || keycode == '10') && (!mod || ev[mod + 'Key'])) {
                fnc.call(this, ev);
            }
        })
    })
}

( টেক্সটআরএতে সিটিআরএল + jQuery লিখুনও দেখুন )


4

কিছু ক্ষেত্রে, আপনাকে ENTERকোনও পৃষ্ঠার নির্দিষ্ট ক্ষেত্রের জন্য কীটি টিপতে হবে তবে পৃষ্ঠার অন্যান্য ক্ষেত্রগুলির জন্য নয়, যেমন নীচের পৃষ্ঠায় যেমন অনুসন্ধানের ক্ষেত্র সহ একটি শিরোলেখ রয়েছে ।<div>

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

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test Script</title>
  <script src="/lib/js/jquery-1.7.1.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    $('.container .content input').keypress(function (event) {
      if (event.keyCode == 10 || event.keyCode == 13) {
        alert('Form Submission needs to occur using the Submit button.');
        event.preventDefault();
      }
    });
  </script>
</head>
  <body>
    <div class="container">
      <div class="header">
        <div class="FileSearch">
          <!-- Other HTML here -->
        </div>
      </div>
      <div class="content">
        <form id="testInput" action="#" method="post">
        <input type="text" name="text1" />
        <input type="text" name="text2" />
        <input type="text" name="text3" />
        <input type="submit" name="Submit" value="Submit" />
        </form>
      </div>
    </div>
  </body>
</html>

জেএসফিডাল খেলার মাঠের লিঙ্ক : [Submit]বোতামটি কিছু করে না, তবে ENTERপাঠ্য বাক্স নিয়ন্ত্রণগুলির মধ্যে একটি থেকে চাপলে ফর্মটি জমা দেওয়া হবে না।



2

হিসাবে keypressঘটনা কোনো কর্মকর্তা স্পেসিফিকেশন আওতায় পড়ে না, প্রকৃত আচরণ যখন ব্যবহার করে এটি ব্রাউজার, ব্রাউজার সংস্করণ, এবং প্ল্যাটফর্ম জুড়ে ভিন্ন হতে পারে সম্মুখীন হয়েছে।

$(document).keydown(function(event) {
  if (event.keyCode || event.which === 13) {
    // Cancel the default action, if needed
    event.preventDefault();
    //call function, trigger events and everything tou want to dd . ex : Trigger the button element with a click
    $("#btn").trigger('click');
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<button id="btn" onclick="console.log('Button Pressed.')">&nbsp</button>

আমি এটি দরকারী হবে আশা করি!


লক্ষণীয়, কেন keypressঅনুপস্থিতিতে (আর) না থাকার কারণ হ'ল এটিকে অবমূল্যায়ন করা হয়েছে ( এমডিএন )।
ইয়েলোএফটারলাইফ

সুতরাং, আমি সম্পাদিত ... tnx <3
জো_এনএস

0

ব্যবহারকারীর এন্টার টিপেছে কিনা তা সনাক্ত করার সহজ উপায়টি হল আপনার ডিভাইসে কীটির মান পরীক্ষা করার জন্য কী নম্বরটি প্রবেশ নম্বরটি = 13 হয়

$("input").keypress(function (e) {
  if (e.which == 32 || (65 <= e.which && e.which <= 65 + 25)
                    || (97 <= e.which && e.which <= 97 + 25)) {
    var c = String.fromCharCode(e.which);
    $("p").append($("<span/>"))
          .children(":last")
          .append(document.createTextNode(c));
  } else if (e.which == 8) {
    // backspace in IE only be on keydown
    $("p").children(":last").remove();
  }
  $("div").text(e.which);
});

এন্টার কী টিপে আপনি 13 হিসাবে ফলাফল পাবেন। মূল মানটি ব্যবহার করে আপনি কোনও ফাংশন কল করতে পারেন বা যা ইচ্ছা তা করতে পারেন

        $(document).keypress(function(e) {
      if(e.which == 13) {
console.log("User entered Enter key");
          // the code you want to run 
      }
    });

কী টিপে গেলে একবার আপনি কোনও বাটন টার্গেট করতে চান আপনি কোডটি ব্যবহার করতে পারেন

    $(document).bind('keypress', function(e){
  if(e.which === 13) { // return
     $('#butonname').trigger('click');
  }
});

আশা করি এটি সাহায্য করবে



0
$(function(){
  $('.modal-content').keypress(function(e){
    debugger
     var id = this.children[2].children[0].id;
       if(e.which == 13) {
         e.preventDefault();
         $("#"+id).click();
       }
   })
});

3
প্রশ্নকারীকে আপনার কোড কীভাবে কাজ করে তা বোঝাতে আপনি কিছুটা ব্যাখ্যামূলক মন্তব্য যুক্ত করতে পারেন - ধন্যবাদ।
SaschaM78

0
$(document).keyup(function(e) {
    if(e.key === 'Enter') {
        //Do the stuff
    }
});

এটি অন্যান্য উত্তরের সাথে অভিযোজনের মতো দেখাচ্ছে - নিজেকে অন্যদের মতো আকর্ষণীয় করে তুলতে আপনি কি কিছু ব্যাখ্যা যুক্ত করতে পারেন?
নিকো হাজেস

0

আমি ব্যবহৃত $(document).on("keydown")

কিছু ব্রাউজারে keyCodeসমর্থিত নয়। সমর্থিত না whichহলে keyCodeএটি একই রকম আপনাকে ব্যবহার করতে হবে whichএবং বিপরীতে।

$(document).on("keydown", function(e) {
  const ENTER_KEY_CODE = 13;
  const ENTER_KEY = "Enter";
  var code = e.keyCode || e.which
  var key = e.key
  if (code == ENTER_KEY_CODE || key == ENTER_KEY) {
    console.log("Enter key pressed")
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

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