0

所有,我被以下问题困住了,请帮助审查它。我在页面中有两个输入文本。比方说A和B。当加载页面时,A可以输入文本而B被禁用,在A 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>

我对其进行了一些测试,发现即使是单击事件也无法为禁用的元素触发。

<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 都无法修复。谢谢。

4

2 回答 2

1

您可以在 keyup 事件而不是模糊上检查 ATxt 的值:

<input type="text" id="ATxt" value="" onkeyup="ATextOnBlur(this);">
<input type="text" id="BTxt" value="" disabled="disabled">
于 2013-09-26T07:28:51.587 回答
1

您应该使用 onkeypress 事件。你可以参考这里 - http://www.w3schools.com/jsref/event_onkeypress.asp

根据您的要求,您可能还需要考虑 onkeyup 和 onkeydown。

于 2013-09-26T07:30:40.050 回答