تعيين قيمة إدخال النموذج إلى "" لا يزيل المساحات
-
29-09-2019 - |
سؤال
أحاول تنفيذ محاكي سطر الأوامر في JavaScript. انا اريد ال Spacebar
مفتاح العمل كـ Enter
(إرسال ، ثم قم بمسح سطر الأوامر).
في هذا المنشور ، دعونا نمثل أ space
كقوة سطحية ، لذلك _
يعني [space]
:
إذا أدخلت banana_
وبعد ذلك ، بعد اصطياد keypress ، أتصل input.value= ""
, ، يمسح banana
, ، ولكن ليس المتبقية space
.
لقد اختبرت كلاهما onkeydown
و onkeypress
, ، ولكن لا يبدو أنه يحدث أي فرق. في الحقيقة، onkeyup
هل الحيلة ، انظر إجابتي أدناه!
هذا هو الكود الخاص بي. هل يمكن لشخص ما مساعدتي في إزالة المساحة الإضافية ...
<html><head>
<script type="text/javascript">
document.onkeypress = keyCheck;
function keyCheck( e ) {
var keyID = (window.event) ? event.keyCode : ( e.keyCode ? e.keyCode : e.charCode );
switch(keyID) {
case 32: //spacebar
alert( "space pressed, clearing..." );
document.getElementById( "cli" ).value="";
break;
default:
//do something else
break;
}
}
</script>
</head>
<body>
<form name="frm" id="frm" onSubmit="go( this )">
<input name="cli" id="cli" type="text" name="cmd" size="122">
</body>
</html>
المحلول
يستخدم onkeyup
في حين أن.
document.onkeyup = keyCheck;
بهذه الطريقة يحدث الحدث بعد، بعدما تمت إضافة الحرف إلى قيمة العنصر.
حاول: http://jsbin.com/esacu3
لا تنتمي إلى StackOverflow