简体   繁体   English

如何在JavaScript中的文本框的按键事件上启用或禁用按钮

[英]how to enable or disable a button on keypress event of a textbox in javascript

I created a TextBox :- 我创建了一个TextBox:-

TextBox ID="TxtUname" onKeyPress="ENABLE_BTN()"

Now i wrote a function :- 现在我写了一个函数:-

script type="text/javascript"

window.onload = function() { 
        document.getElementById('SSAccept').disabled = true; 
}; 
function ENABLE_BTN() {
     var EN=document.getElementById('TxtUname').value;
     if(EN=='') {
         document.getElementById('SSAccept').disabled=true;
     } else {
         document.getElementById('SSAccept').disabled=false;
     }
}
</script>

BUT STILL THE DISABLED BUTTON IS NOT GETTING ENABLED ON PRESSING ANY KEY IN THE TEXTBOX. 但是仍然无法在按下文本框中的任何键时启用禁用的按钮。 Can anyone tell me what i did wrong ?? 谁能告诉我我做错了吗? Thanks in Advance 提前致谢

Dev.. 开发人员

onkeypress doesn't work in all browsers -> http://www.quirksmode.org/js/keys.html onkeypress不适用于所有浏览器-> http://www.quirksmode.org/js/keys.html

onkeyup / onkeydown should be used -> 应该使用onkeyup / onkeydown >

Working example : http://jsfiddle.net/KCBzk/ 工作示例: http : //jsfiddle.net/KCBzk/

HTML : HTML:

<input id="TxtUname" value="" onkeydown="ENABLE_BTN()"/><br>
<button id="SSAccept">Some test</button>

Javascript: Javascript:

window.onload = function() {
    document.getElementById('SSAccept').disabled = true; 
}
function ENABLE_BTN() {
     var EN=document.getElementById('TxtUname').value;
     if(EN=='') {
         document.getElementById('SSAccept').disabled=true;
     } else {
         document.getElementById('SSAccept').disabled=false;
     }
}

the thing is that you need an event to invoke that function. 问题是您需要一个事件来调用该函数。 you should monitor your textbox for change and invoke the function whenever the value changes. 您应该监视文本框的更改,并在值更改时调用该函数。 like using jquery 就像使用jQuery

$("#TxtUname").keydown(function(e) { 
    if($("#TxtUname").val == '') {
        //..disable button..
    } else {
        //..enable button
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM