无法知道已禁用元素的点击行为

时间:2013-09-26 07:22:13

标签: javascript jquery

所有,我遇到了以下问题,请帮忙查看。 我在页面中有两个输入文本。我们来说A和B. 当加载页面时,A被启用以在B被禁用时输入文本,在触发onb​​lur之后,我将验证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都无法修复。感谢。

2 个答案:

答案 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,具体取决于您的要求。