当我使用此代码时:
<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的参数中使用#
:它实际上应该像这样编写...
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-,显然不需要检查。