উত্তর:
if(characterCode == 13)
{
return false; // returning false will prevent the event from bubbling up.
}
else
{
return true;
}
ঠিক আছে, সুতরাং কল্পনা করুন আপনার একটি ফর্মের মধ্যে নিম্নলিখিত পাঠ্যবক্স রয়েছে:
<input id="scriptBox" type="text" onkeypress="return runScript(event)" />
এন্টার কীটি চাপলে, এবং ফর্মটি জমা না দেওয়ার জন্য এই পাঠ্য বাক্স থেকে কিছু "ব্যবহারকারী সংজ্ঞায়িত" স্ক্রিপ্ট চালানোর জন্য, এখানে কিছু নমুনা কোড দেওয়া আছে। দয়া করে মনে রাখবেন যে এই ফাংশনটি কোনও ত্রুটি যাচাই করে না এবং সম্ভবত কেবলমাত্র আইই তে কাজ করবে। এটি সঠিকভাবে করতে আপনার আরও দৃ rob় সমাধানের প্রয়োজন, তবে আপনি সাধারণ ধারণা পাবেন।
function runScript(e) {
//See notes about 'which' and 'key'
if (e.keyCode == 13) {
var tb = document.getElementById("scriptBox");
eval(tb.value);
return false;
}
}
ফাংশনের মানটি ফিরিয়ে দেওয়া ইভেন্ট হ্যান্ডলারটিকে ইভেন্টটিকে আর বুদবুদ না করার জন্য সতর্ক করবে, এবং কীপ্রেস ইভেন্টটিকে আর পরিচালনা করতে বাধা দেবে।
এটা তোলে সরু আউট যে হয়েছে keyCode
করা হয় বর্তমানে অবচিত । পরবর্তী সেরা বিকল্পwhich
করেছে এছাড়াও অবচিত হয়েছে ।
দুর্ভাগ্যক্রমে পছন্দসই স্ট্যান্ডার্ড key
, যা আধুনিক ব্রাউজারগুলি দ্বারা ব্যাপকভাবে সমর্থিত হয়, এর আইই এবং এজতে কিছুটা অদ্ভুত আচরণ রয়েছে । আইই ১১ এর চেয়ে পুরানো যে কোনও কিছুতে এখনও পলিফিল লাগবে ।
তদ্ব্যতীত, অবহেলিত সতর্কবাণীটি সম্পর্কে অত্যন্ত অশুচি keyCode
এবং এগুলি which
সরিয়ে ফেলা উত্তেজনাপূর্ণ ওয়েবসাইটের অগণিত সংখ্যায় ব্যাপক ভাঙ্গন পরিবর্তনের প্রতিনিধিত্ব করবে। যে কারণে, এটি শীঘ্রই যে কোনও সময় যে কোনও জায়গায় যাওয়ার সম্ভাবনা নেই।
eval
একটি বোতামে চাপ দিয়ে বিষয়বস্তুগুলি যদি তারা বিকাশকারী সরঞ্জামগুলি খোলায় এবং তা করে তবে ভিন্ন নয়। যদি এটি এমন কিছু বিষয় যা ডিবি সংরক্ষণ পেয়ে হয় এবং দ্বারা খোলা যেত অন্য ব্যবহারকারী, তাহলে এটি একটি বড় চুক্তি হতে পারে, কিন্তু যে একটি সমস্যা এই সামান্য স্নিপেট সম্পূর্ণ স্বাধীন যে।
উভয় event.which
এবং event.keyCode
:
function (event) {
if (event.which == 13 || event.keyCode == 13) {
//code to execute here
return false;
}
return true;
};
which
অন্যদের সমর্থন সমর্থন করে keyCode
। উভয়কে অন্তর্ভুক্ত করা ভাল অনুশীলন।
keydown
পরিবর্তে ঘটনা keyup
বাkeypress
আপনি যদি jQuery ব্যবহার করছেন:
$('input[type=text]').on('keydown', function(e) {
if (e.which == 13) {
e.preventDefault();
}
});
preventDefault
উঠেছে , তবে কমপক্ষে Chrome এ ফর্ম জমা দেওয়া বন্ধ করবে বলে মনে হচ্ছে না।
$('input[type=text]').on('keydown', function(e) { if (e.which == 13) { e.preventDefault(); } });
'keydown'
অন্যান্য মন্তব্যকারীরা বিবৃত হিসাবে সঠিক। যেহেতু এটি পরিবর্তন করা হয়নি আমি উত্তর আপডেট করব। আমি এই উত্তরটি ব্যবহার করেছি এবং ফিরে এসে মন্তব্যগুলিতে নজর না দেওয়া পর্যন্ত কিছুক্ষণ আটকে ছিলাম।
আরও সাম্প্রতিক এবং অনেক ক্লিনার: ব্যবহার event.key
। আর যথেচ্ছ নম্বর কোড নেই!
const node = document.getElementsByClassName(".mySelect")[0];
node.addEventListener("keydown", function(event) {
if (event.key === "Enter") {
event.preventDefault();
// Do more work
}
});
keyCode
অবচয় করা হয়। এটি আপনার কোডে ম্যাজিক পূর্ণসংখ্যার চেয়ে বেশি পঠনযোগ্য এবং রক্ষণাবেক্ষণযোগ্য
পুরো ডকুমেন্টে টিপুন কী সন্ধান করুন:
$(document).keypress(function (e) {
if (e.which == 13) {
alert('enter key is pressed');
}
});
onsubmit
আপনার ফাংশনে কল হতে ফর্মটির ক্রিয়াকে ওভাররাইড করুন এবং এর পরে মিথ্যা রিটার্ন যুক্ত করুন, অর্থাত:
<form onsubmit="javascript:myfunc();return false;" >
একটি প্রতিক্রিয়া জেএস সমাধান
handleChange: function(e) {
if (e.key == 'Enter') {
console.log('test');
}
<div>
<Input type="text"
ref = "input"
placeholder="hiya"
onKeyPress={this.handleChange}
/>
</div>
তাই সম্ভবত যতটা সম্ভব ব্রাউজারটি কভার করার সর্বোত্তম সমাধান এবং ভবিষ্যতের প্রমাণ হতে পারে
if (event.which === 13 || event.keyCode === 13 || event.key === "Enter")
আপনি যদি এখানে বিশুদ্ধ জাভা স্ক্রিপ্ট ব্যবহার করে করতে চান তবে এটি নিখুঁতভাবে কাজ করে এমন একটি উদাহরণ
ধরা যাক এটি আপনার এইচটিএমএল ফাইল
<!DOCTYPE html>
<html>
<body style="width: 500px">
<input type="text" id="textSearch"/>
<script type="text/javascript" src="public/js/popup.js"></script>
</body>
</html>
আপনার মধ্যে পপআপ.জেএস ফাইলটিতে কেবল এই ফাংশনটি ব্যবহার করুন
var input = document.getElementById("textSearch");
input.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
alert("yes it works,I'm happy ");
}
});
নীচে কোড শ্রোতার জন্য যোগ করা হবে ENTER
পুরো পৃষ্ঠায় কীটির ।
এটি একক অ্যাকশন বোতামের সাথে স্ক্রিনে খুব দরকারী হতে পারে যেমন লগইন, নিবন্ধন, জমা দিন ইত্যাদি
<head>
<!--Import jQuery IMPORTANT -->
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<!--Listen to Enter key event-->
<script type="text/javascript">
$(document).keypress(function (e) {
if (e.which == 13 || event.keyCode == 13) {
alert('enter key is pressed');
}
});
</script>
</head>
সমস্ত ব্রাউজারে পরীক্ষিত।
একটি jQuery সমাধান।
আমি এখানে পাঠ্য ইনপুটটিতে অস্পষ্ট ইভেন্টটি বরখাস্ত না করা পর্যন্ত ফর্ম জমা দেওয়ার ক্ষেত্রে বিলম্ব করার উপায় সন্ধান করতে এসেছি।
$(selector).keyup(function(e){
/*
* Delay the enter key form submit till after the hidden
* input is updated.
*/
// No need to do anything if it's not the enter key
// Also only e.which is needed as this is the jQuery event object.
if (e.which !== 13) {
return;
}
// Prevent form submit
e.preventDefault();
// Trigger the blur event.
this.blur();
// Submit the form.
$(e.target).closest('form').submit();
});
আরও সাধারণ সংস্করণ পেয়ে ভাল লাগবে যা কেবল ফর্ম জমা দেওয়ার চেয়ে সমস্ত বিলম্বিত ইভেন্টগুলিকে সরিয়ে দিয়েছে।
টাইপস্ক্রিপ্ট ব্যবহার করে, এবং ফাংশনে বহুবিধ কলগুলি এড়ানো
let el1= <HTMLInputElement>document.getElementById('searchUser');
el1.onkeypress = SearchListEnter;
function SearchListEnter(event: KeyboardEvent) {
if (event.which !== 13) {
return;
}
// more stuff
}
document.onload = (() => {
alert('ok');
let keyListener = document.querySelector('#searchUser');
//
keyListener.addEventListener('keypress', (e) => {
if(e.keyCode === 13){
let username = e.target.value;
console.log(`username = ${username}`);
fetch(`https://api.github.com/users/${username}`,{
data: {
client_id: 'xxx',
client_secret: 'xxx'
}
})
.then((user)=>{
console.log(`user = ${user}`);
});
fetch(`https://api.github.com/users/${username}/repos`,{
data: {
client_id: 'xxx',
client_secret: 'xxx'
}
})
.then((repos)=>{
console.log(`repos = ${repos}`);
for (let i = 0; i < repos.length; i++) {
console.log(`repos ${i} = ${repos[i]}`);
}
});
}else{
console.log(`e.keyCode = ${e.keyCode}`);
}
});
})();
<input _ngcontent-inf-0="" class="form-control" id="searchUser" placeholder="Github username..." type="text">
<form id="form1" runat="server" onkeypress="return event.keyCode != 13;">
আপনার এইচটিএমএল পৃষ্ঠায় এই কোডটি যুক্ত করুন ... এটি অক্ষম হবে ... বোতামটি প্রবেশ করান ..
<div class="nav-search" id="nav-search">
<form class="form-search">
<span class="input-icon">
<input type="text" placeholder="Search ..." class="nav-search-input" id="search_value" autocomplete="off" />
<i class="ace-icon fa fa-search nav-search-icon"></i>
</span>
<input type="button" id="search" value="Search" class="btn btn-xs" style="border-radius: 5px;">
</form>
</div>
<script type="text/javascript">
$("#search_value").on('keydown', function(e) {
if (e.which == 13) {
$("#search").trigger('click');
return false;
}
});
$("#search").on('click',function(){
alert('You press enter');
});
</script>
কিছু পুরানো ব্রাউজার একটি মানহীন উপায়ে কীডাউন ইভেন্টগুলি প্রয়োগ করে।
কীবোর্ডএভেন্ট.কি আধুনিক ব্রাউজারগুলিতে এটি প্রয়োগ করার কথা।
which
এবং keyCode
আজকাল হ্রাস করা হয়, তবে এই ইভেন্টগুলির জন্য যাচাই করা ক্ষতিগ্রস্থ হয় না যাতে আইডির মতো পুরানো ব্রাউজারগুলি ব্যবহার করা ব্যবহারকারীদের পক্ষে কোড কাজ করে।
isKeyPressed
ফাংশন চেক যদি চাপা কী লিখুন এবং ছিল event.preventDefault()
পথে অন্তরায় জমা দেওয়া থেকে ফর্ম।
if (isKeyPressed(event, 'Enter', 13)) {
event.preventDefault();
console.log('enter was pressed and is prevented');
}
জাতীয়
function isKeyPressed(event, expectedKey, expectedCode) {
const code = event.which || event.keyCode;
if (expectedKey === event.key || code === expectedCode) {
return true;
}
return false;
}
document.getElementById('myInput').addEventListener('keydown', function(event) {
if (isKeyPressed(event, 'Enter', 13)) {
event.preventDefault();
console.log('enter was pressed and is prevented');
}
});
এইচটিএমএল
<form>
<input id="myInput">
</form>