Bri*_*ian 5 html javascript inputbox getelementsbyname
我正在尝试创建一个函数,该函数将查看用户名(如果无效),然后向用户发送警报,清除用户名字段,然后将用户名字段重新置于焦点中。我正在尝试使用 getElementsBynName() 函数来完成这一切。除了让现场重新成为焦点之外,一切都在进行。我的代码如下。有没有人有什么建议。
function uchecker(uname)
{
var validUname = uname.search(/^\w+@sabc.com$/);
if(validUname != 0)
{
alert("You have entered an invalid username. \n The username must be a valid @sju.edu email address value " + document.getElementsByName('uname')[0].value);
document.getElementsByName('uname')[0].value = null;
document.getElementsByName('uname')[0].focus();
/I have also tried document.getElementsByName('uname').focus, document.getElementsByName('uname')[0].value.focus();
}
Run Code Online (Sandbox Code Playgroud)
}
因此,在 Java 脚本运行之前,焦点字段会更改为下一个字段,即我的密码输入框……它也有自己的验证功能。我有办法让我的 javascript 代码在下一个文本框(密码框)获得焦点之前为我的用户名字段运行吗?
想必您的控件的形式如下:
<form ...>
Username: <input type="text" name="uname" onblur="uchecker(this)">
<span id="unameMsg"></span>
<br>
Password: <input type="password" name="password">
...
</form>
Run Code Online (Sandbox Code Playgroud)
所以检查器功能可以是:
function uchecker(element) {
// If fail validation, show message, clear input, return focus
if (!/^\w+@sabc.com$/.test(element.value)) {
document.getElementById(element.name + 'Msg').innerHTML = 'You have entered an invalid username. ...';
element.value = '';
element.focus();
// Otherwise, clear message
} else {
document.getElementById(element.name + 'Msg').innerHTML = '';
}
}
Run Code Online (Sandbox Code Playgroud)
但这会锁定用户先完成用户名字段,然后才能执行其他操作。