当我使用此代码时:
<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。
答案 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,显然不需要检查 - 。