2011-11-02 108 views
0

禁用的文本框的按键事件的按钮,我创建一个文本框: -如何启用或在javascript

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

现在,我写了一个函数: -

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> 

但仍禁用的按钮在按下文本框中的任何键时不能启用。 谁能告诉我我做错了什么?在此先感谢

Dev ..

回答

1

onkeypress没有在所有的浏览器 - >http://www.quirksmode.org/js/keys.html

onkeyup/onkeydown应使用 - >

工作例如:http://jsfiddle.net/KCBzk/

HTML:

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

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; 
    } 
} 
+0

伙计..在KeyDown too dosent工作,但onKeyUp工作成功。非常感谢。上帝保佑你..但是你能否告诉我,onKeyUp会在每个浏览器上成功运行? – Dev

+0

@Dev你在用什么浏览器? – ManseUK

+0

我正在使用IE .. – Dev

-1

事情是,你需要一个事件来调用该函数。你应该监视你的文本框的变化,并在值改变时调用函数。像使用jQuery

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

这是jQuery - OP没有说他正在使用jQuery – ManseUK

+0

我说喜欢使用jQuery。 **你应该监视你的文本框的变化,并调用函数,只要值的变化**见 – satin

+0

是应得的...没有看到它清楚!我的坏 – satin

相关问题