تعيين قيمة إدخال النموذج إلى "" لا يزيل المساحات

StackOverflow https://stackoverflow.com/questions/4125510

  •  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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top