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

时间:2013-12-06 11:25:07

标签: javascript asp.net

当我使用此代码时:

<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。

1 个答案:

答案 0 :(得分:2)

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

document.getElementById('ErrorText')

#将尝试查找ID严格等于'#ErrorText'的元素 - 这将失败,因此该函数将返回null。之后任何尝试使用null(特别是调用某些方法)都会失败并显示错误。

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

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

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