我有这段代码:
<html>
<head>
<script type="text/javascript">
function validate(){
var name=document.frm.name.value;
if(name.indexOf("A")==0){
alert(name);
}
}
</script>
</head>
<body>
<form name="frm" action="test.php">
Enter name:<input type="text" name="name" onblur="validate()"/>
Enter e-Mail:<input type="text" name="email" onblur=""/>
<input type="submit"/>
</form>
</body>
</html>
在上面的代码中,我试图在失去焦点时验证文本字段。如果名称以A
开头,则脚本正常工作。但我希望如果用户输入不以A
开头的不同名称,它会将焦点返回到文本字段name
。为此,我写了这个剧本:
<script type="text/javascript">
var name = document.frm.name.value;
if(name.indexOf("A") == 0){
alert(name);
}else{
document.frm.name.focus();
}
</script>
然后它不起作用。
任何人都可以帮忙我应该怎么做才能请求文本域name
的焦点?
我对javascript
只有一点了解。
答案 0 :(得分:2)
只需为您提供id
表单,然后将其引用至document.getElementById('form_id')
。在此背景下使用name
属性已在十多年前被弃用。 name
的{{1}}也应该是input
之外的其他内容,而不是使用"name"
或某事。
<强> HTML 强>:
username
<强>的JavaScript 强>:
<form id="frm" action="test.php">
Enter name:<input type="text" name="username" id="username" onblur="validate()"/>
Enter e-Mail:<input type="text" name="email" id="email" onblur=""/>
</form>
您还可以将function validate(){
var form = document.getElementById('frm');
if (form.username.value.indexOf("A") === 0) {
alert(name);
} else {
form.username.focus();
}
}
传递给id
作为参数:form
,而不是检索form
的{{1}}。然后在eventhandler中将该参数用作validate()
:
onblur="validate(this);"
修改强>
焦点似乎没有延迟,你可以试试这个(form
有一个function validate(form){
if (form.username.value.indexOf("A") === 0) {
alert(name);
} else {
form.username.focus();
}
}
):
input
答案 1 :(得分:1)
像这样修改你的脚本
<html>
<head>
<script type="text/javascript">
function validate(){
var name=document.frm.name.value;
if(name.indexOf("A")==0){
alert(name);
}
}
</script>
</head>
<body >
<form id="frm" action="test.php">
Enter name:<input type="text" name="username" onblur="validate()"/>
Enter e-Mail:<input type="text" name="email" onblur=""/>
<input type="submit" onclick="check()"/>
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
function validate()
{
var name = document.getElementById('frm').username.value;
if(name.indexOf("A") == 0){
alert(name);
document.getElementById('frm').email.focus();
}else{
document.getElementById('frm').username.focus();
}
}
function check()
{
var name = document.getElementById('frm').username.value;
if(name.indexOf("A") == 0){
}else{
alert("Please enter a name starting with 'A'");
document.getElementById('frm').username.focus();
}
}
//-->
</SCRIPT>
</body>
</html>
您想在事件validate()
上执行功能onblur
。在脚本中,您已经编写了用于聚焦的代码,但未将其添加到函数中。
答案 2 :(得分:0)
试试这个document.frm.username.focus();
。我希望它能奏效。