Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript没有';我不能立即启动我的按钮_Javascript_Asp.net - Fatal编程技术网

javascript没有';我不能立即启动我的按钮

javascript没有';我不能立即启动我的按钮,javascript,asp.net,Javascript,Asp.net,我使用VS2010,C#进行ASP.NET开发,我编写了一个小Javascript函数,仅在用户在文本框中输入短语(此文本框不应为空)后才启用最初禁用的按钮,它工作正常,但存在一个小问题,当用户键入单词时,按钮未完全启用,他应该按tab键或点击屏幕,这样按钮就会被启用!以下是我的JS函数: <script type="text/javascript" > function onWeightChange() { document.get

我使用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>
这里出了什么问题?我希望在文本框中输入文本后立即启用按钮,并且不需要从文本框更改焦点


感谢

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();");