当我使用此代码时:
<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>
到
返回真。
最佳答案
首先,getElementById 的参数中不需要 #
:它确实应该这样写...
document.getElementById('ErrorText')
使用 #
会尝试查找 ID 字面等于 '#ErrorText'
的元素 - 这会失败,因此该函数将返回 空
。之后任何使用 null
的尝试(特别是调用它的某些方法)都将失败并引发错误。
其次,您似乎混合了 jQuery 函数和 JavaScript 函数:DOMElements 中没有 text
方法。严格来说,您必须检查 textContent
支持,然后使用它;如果不支持,请改用 innerText
。例如:
var el = document.getElementById('ErrorText');
el['textContent' in el ? 'textContent' : 'innerText'] = 'Error';
如果您的项目不必支持 IE8,显然不需要检查。
关于javascript - 从 OnClientClick 调用函数时在 JavaScript 中返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422675/