我创建了两个输入框,并设置了 JavaScript,以便在达到最大长度时自动聚焦下一个框。它工作正常。但是当触发任何回发事件时,这些值变得清晰。我将 runat="server"放在输入框上,然后输入值已解决明确的问题,但自动对焦脚本不起作用。请帮助我。
function movetoNext(current, nextFieldID) {
if (current.value.length >= current.maxLength) {
document.getElementById(nextFieldID).focus();
}
}
<input type="text" id="txtcard1" size="4"
onkeyup="movetoNext(this, 'txtcard2')" maxlength="4" />
<input type="text" id="txtcard2" size="4"
onkeyup="movetoNext(this, 'txtcard3')" maxlength="4" />
最佳答案
根据您的问题详细信息,您似乎使用 ASP.net。
您必须添加 runat="server"
来维护控件状态,但同时当您添加 runat="server"
时,控件将在服务器上呈现并且控件的ID将会改变。
因此,在客户端脚本中使用控件时,您需要 ClientIDMode="Static"
标记。
例如:
<input type="text" id="txtcard2" size="4"
onkeyup="movetoNext(this, 'txtcard3')" maxlength="4" ClientIDMode="Static" runat="server" />
关于javascript - 回发时 HTML 输入值清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52405549/