首页 > 解决方案 > 回发时清除 HTML 输入值

问题描述

我创建了两个输入框,并在达到最大长度时为下一个框设置了 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"   /> 

标签: javascripthtmlasp.netvb.netinput

解决方案


根据您的问题详细信息,您似乎在使用 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"  /> 

推荐阅读