javascript没有';我不能立即启动我的按钮
我使用VS2010,C#进行ASP.NET开发,我编写了一个小Javascript函数,仅在用户在文本框中输入短语(此文本框不应为空)后才启用最初禁用的按钮,它工作正常,但存在一个小问题,当用户键入单词时,按钮未完全启用,他应该按tab键或点击屏幕,这样按钮就会被启用!以下是我的JS函数:javascript没有';我不能立即启动我的按钮,javascript,asp.net,Javascript,Asp.net,我使用VS2010,C#进行ASP.NET开发,我编写了一个小Javascript函数,仅在用户在文本框中输入短语(此文本框不应为空)后才启用最初禁用的按钮,它工作正常,但存在一个小问题,当用户键入单词时,按钮未完全启用,他应该按tab键或点击屏幕,这样按钮就会被启用!以下是我的JS函数: <script type="text/javascript" > function onWeightChange() { document.get
<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>
这里出了什么问题?我希望在文本框中输入文本后立即启用按钮,并且不需要从文本框更改焦点
感谢
onchange
在用户离开元素时触发,但在元素具有焦点时不会触发
您需要将按键事件
onkeypress
或onkeypup
与onchange
事件结合使用。您需要onchange
事件,因为无需按键即可更改控件的值 onchange
在用户离开元素时触发,但在元素具有焦点时不会触发
您需要将按键事件
onkeypress
或onkeypup
与onchange
事件结合使用。您需要onchange
事件,因为无需按键即可更改控件的值 我相信您需要绑定到的正确事件是在中显示的keydown事件,或者可能是keydup,具体取决于您需要的行为。我相信您需要绑定到的正确事件是在中显示的keydown事件,或者可能是keydup,具体取决于您需要的行为。onchange()事件仅在用户离开输入框时触发。您想使用事件
函数onweightschange(el){
document.getElementById('btnFinish').disabled=e.value.length;
document.getElementById('btnConfirmQuestion').disabled=el.value.length;
}
只有当用户离开输入框时,onchange()
事件才会触发。您想使用事件
函数onweightschange(el){
document.getElementById('btnFinish').disabled=e.value.length;
document.getElementById('btnConfirmQuestion').disabled=el.value.length;
}
您应该尝试onkeyup方法,因为onchange仅在文本框失去焦点时触发,如果有人将内容粘贴到您的文本框中,您应该尝试onpaste方法,这种组合应该可以正常工作
txtWeight.Attributes.Add("onkeyup", "return onWeightChange();");
txtWeight.Attributes.Add("onpaste", "return onWeightChange();");
您应该尝试onkeyup方法,因为onchange仅在文本框失去焦点时触发,如果有人将内容粘贴到您的文本框中,您应该尝试onpaste方法,这种组合应该可以正常工作
txtWeight.Attributes.Add("onkeyup", "return onWeightChange();");
txtWeight.Attributes.Add("onpaste", "return onWeightChange();");
使用
onkeypress
而不是onchange
。使用onkeypress
而不是onchange
。将文本粘贴到带有文件菜单的文本框中,您的代码现在工作了吗?嗯。。。好问题。不确定keyup是否适用于控制键。让我检查一下,然后再给你回复。是的,onkeyup事件是用ctrl-v触发的,但是,它仍然可以用鼠标右键单击“粘贴”来更改。在这种情况下,您可以保留onchange事件或将onpaste事件添加到mix中。使用文件菜单将文本粘贴到文本框中,您的代码现在可以工作了吗?嗯。。。好问题。不确定keyup是否适用于控制键。让我检查一下,然后再给你回复。是的,onkeyup事件是用ctrl-v触发的,但是,它仍然可以用鼠标右键单击“粘贴”来更改。在这种情况下,您可以保留onchange事件或向混合中添加onpaste事件。我不知道,谢谢。我认为w3schools链接仍然有效、正确地显示了关键事件的详细信息。我不知道,谢谢。我认为w3schools链接仍然有效、正确地显示了关键事件的详细信息。
txtWeight.Attributes.Add("onkeyup", "return onWeightChange();");
txtWeight.Attributes.Add("onpaste", "return onWeightChange();");