从OnClientClick调用函数时,在JavaScript中返回true

Return true in JavaScript when call function from OnClientClick

本文关键字:JavaScript 返回 true OnClientClick 调用 函数      更新时间:2024-03-28

当我使用此代码时:

<asp:Button runat="server" ID="Block" Text="text"  OnClientClick="return BlockCheck()"   OnClick="BtnBlockClick"  CausesValidation="False"/>

function BlockCheck() {
            if (x) {
                document.getElementById('#ErrorText').text('Error');
                return false;
            }
        return true;
    }

但这部分:document.getElementById('#ErrorText').text('Error');<br>返回true。

首先,在getElementById的param中不需要#:它真的应该这样写。。。

document.getElementById('ErrorText')

对于#,它将尝试找到ID实际上等于'#ErrorText'的元素,但会失败,因此函数将返回null。之后任何使用null的尝试(特别是从中调用一些方法)都将失败,并引发错误。

其次,您似乎混合了jQuery函数和JavaScript函数:在DOMElement中没有text方法。严格地说,您必须检查textContent支持,然后再使用它;如果不支持,请改用innerText。例如:

var el = document.getElementById('ErrorText');
el['textContent' in el ? 'textContent' : 'innerText'] = 'Error';

显然,如果您的项目不需要支持IE8-,则不需要进行检查。