我使用VS2010,C#为ASP.NET开发,我已经写了一个小的Javascript函数,启用一个最初禁用的按钮,只有当用户在文本框中输入短语(此文本框不应为空),它工作得很好,但有一个小问题,按钮是不启用的,当用户键入单词时,他应该按tab键或点击屏幕上的按钮,这样按钮才能启用!下面是我的JS函数:
<script type="text/javascript" >
function onWeightChange() {
document.getElementById('btnFinish').disabled = true;
document.getElementById('btnConfirmQuestion').disabled = true;
if (document.getElementById('txtWeight').value != "") {
document.getElementById('btnFinish').disabled = false;
document.getElementById('btnConfirmQuestion').disabled = false;
}
}
</script>我用下面的方式调用我的JS代码:
txtWeight.Attributes.Add("onchange", "return onWeightChange();");这里出了什么问题?我希望我的按钮在文本框中输入文本后立即启用,并且不需要从文本框中更改焦点
谢谢
发布于 2012-03-18 20:01:27
onchange会在用户离开元素时触发,但不会在元素具有焦点时触发。
您需要将键事件与onchange事件结合使用,可以是onkeypress事件,也可以是onkeyup事件。您需要onchange事件,因为无需按键即可更改控件的值!
发布于 2012-03-18 20:02:40
我认为您需要绑定的正确事件是keydown事件,如http://www.w3schools.com/jsref/event_onkeydown.asp所示,或者可能是keyup,这取决于您需要的行为。
发布于 2012-03-18 20:20:02
你应该尝试onkeyup方法,因为onchange只会在你的文本框失去焦点时触发,如果有人将一些东西粘贴到你的文本框中,你应该尝试onpaste方法,这个组合应该可以很好地工作。
txtWeight.Attributes.Add("onkeyup", "return onWeightChange();");
txtWeight.Attributes.Add("onpaste", "return onWeightChange();");https://stackoverflow.com/questions/9758086
复制相似问题