用户需求
多个输入框,没有输入到最后一个时,敲击回车键,跳到下一个文本框,如果是最后一个文本框,敲击回车键则提交表单。
解决方法
前面的跳跃,相信大家都比较了解了,响应onkeydown事件或者onkeyup事件(根据需求选择),调用nextFocus()方法。
function nextFocus()
{
if (event.keyCode ==13)
{
event.keyCode = 9
}
}
{
if (event.keyCode ==13)
{
event.keyCode = 9
}
}
最后一个文本框,当我们敲击回车键时,响应onkeydown事件或者onkeyup事件(根据需求选择),调用submitform()方法。
function submitform()
{
//用户亦可在此方法中加入适当的客户端数据验证代码。
if (event.keyCode ==13)
{
//tijiao是按钮的名称,按钮类型为submit
document.form.tijiao.focus();
}
}
{
//用户亦可在此方法中加入适当的客户端数据验证代码。
if (event.keyCode ==13)
{
//tijiao是按钮的名称,按钮类型为submit
document.form.tijiao.focus();
}
}
有些用户可能要为,为什么不使用
document.form.submit();
其实是这样的,该方法在onkeydown事件触发后的方法中调用会产生2次提交。当然我尝试了一些机器,根据系统好像也会有所不同,在xp sp2上好像是有这个问题。而采用上面的方法提交,则不会产生此问题。当然如果用户没有此特殊要求,大家还是不要如此做。
正常情况下,用户点击按钮进行提交,为了防止其重复提交可调用下面的js:
document.actionform.tijiao.disabled=true;
这样用户即无法多次提交了。