我有一个javascript代码,允许我自动从表单字段跳转到下一个。
它使用固定的长度字段。
示例:字段TIME只能是4个数字,因此当用户输入第4个数字时,脚本将重点关注下一个字段。
它工作正常,但我想添加一个功能。
我想在变量lenght字段中使用它。我的字段由LASTNAME(空格)FIRSTNAME的第一个字母组成。
示例:John Doe将被输入为“Doe J”
我能想到的唯一技巧是在按下空格+输入另一个角色时使场移位。这是唯一允许使用变量长度姓氏的任意组合执行函数的重复模式。
那么,任何想法如何实现它?我是js的初学者!这是原始代码:
<SCRIPT TYPE="text/javascript">
<!--
var downStrokeField;
function autojump(fieldName,nextFieldName,fakemaxlength)
{
var myForm=document.forms[document.forms.length - 1];
var myField=myForm.elements[fieldName];
myField.nextField=myForm.elements[nextFieldName];
if (myField.maxlength == null)
myField.maxlength=fakemaxlength;
myField.onkeydown=autojump_keyDown;
myField.onkeyup=autojump_keyUp;
}
function autojump_keyDown()
{
this.beforeLength=this.value.length;
downStrokeField=this;
}
function autojump_keyUp()
{
if (
(this == downStrokeField) &&
(this.value.length > this.beforeLength) &&
(this.value.length >= this.maxlength)
)
this.nextField.focus();
downStrokeField=null;
}
//-->
</SCRIPT>
答案 0 :(得分:1)
不是检测空格然后检查字母,而是查看string.match()方法。
您可以在按键上执行类似name.match(/^[A-Z][a-z]* [A-Z]$/)
的操作,以确定姓名是否包含大写字母,后跟任意数量的小写字母,后跟空格和另一个大写字母。
但是,请注意,您可能会遇到与您的标准有关的问题,例如标题为'Jr'的人,或者有空格的姓氏,例如“Da Silva”或撇号,如“O'Malley” 。容纳人们名字中的许多特殊情况可能很棘手。