所有,我遇到了以下问题,请帮忙查看。
我在页面中有两个输入文本。我们来说A和B.
当加载页面时,A被启用以在B被禁用时输入文本,在触发onblur之后,我将验证A的值,如果它是有效的(等于字符串值test
),则启用B输入文字。
问题是,当我点击页面的任何地方时,除非点击B,否则会触发A的on-blur事件,因为在那个时候,B是禁用的。代码如下所示。
<html>
<head>
<script type="text/javascript" >
function ATextOnBlur(obj)
{
if (obj.value=='test')
{
document.getElementById("BTxt").disabled=false;
}
}
</script>
</head>
<body>
<input type="text" id="ATxt" value="" onblur="ATextOnBlur(this);">
<input type="text" id="BTxt" value="" disabled="disabled">
</body>
<html>
我为它做了一些测试,发现即使是对于禁用的元素也无法触发click事件。
<html>
<head>
<script type="text/javascript" >
function textClick()
{
alert('click');
}
</script>
</head>
<body>
<input type="text" value="" disabled="disabled" onclick="textClick();">
</body>
<html>
我想知道Jquery中是否有任何解决方案?或者无论是JS还是Jquery都无法修复。感谢。
答案 0 :(得分:1)
您可以在keyup事件上检查ATxt的值而不是模糊:
<input type="text" id="ATxt" value="" onkeyup="ATextOnBlur(this);">
<input type="text" id="BTxt" value="" disabled="disabled">
答案 1 :(得分:1)
您应该使用onkeypress事件。你可以在这里参考 - http://www.w3schools.com/jsref/event_onkeypress.asp
您可能还需要考虑onkeyup和onkeydown,具体取决于您的要求。