2013-12-12 25 views
0

正如标题所示,我似乎无法得到'.focus();'的工作。 并不知道为什么,据我可以告诉它应该工作得很好?仿佛看不到'.focus();'元素的工作...

我想要它,所以当按下提示的'ok'按钮时,光标将准备好键入'userName'文本框。

预先感谢您。代码如下。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Com 311 | Week 9</title> 

    <script type="text/javascript"> 

     function validName(){ 

      var Name = document.userSurvey.userName.value; 

      if (Name=="") 
      { 
       alert ("Please enter your name."); 
       document.getElementById('userName').focus(); 
      } 

     } 

    </script> 

    </head> 

    <body> 
     <h1> User Survey </h1> 
     <hr /> 
     <h2> User Information </h2> 
     <h3>Please enter your details below:</h3> 

    <form name="userSurvey" onsubmit="validName()"> 
     <p> Full Name: (required) </p> 
     <input type="text" size="30" name="userName"/> 


     <p> Email Address: (required) </p> 
     <input type="text" size="50" name="email"/> 


     <p> Phone Number: (required)</p> 
     <input type="number" size="30" name="phone"/> 

     <hr /> 

     <p> Please choose your favourite type of book:</p> 

     <input type="checkbox" name="bookChoice0" value="Action">Action 
     <input type="checkbox" name="bookChoice1" value="Comic">Comic 
     <input type="checkbox" name="bookChoice2" value="Adventure">Adventure 
     <input type="checkbox" name="bookChoice3" value="Fantasy">Fantasy 
     <br /><br /> 

     <input type="textarea" name="textarea"/> 
     <br /><br /> 

     <input type="submit" value="Submit"/> 
     <input type="reset" value="reset"/> 
    </form> 

    </body> 
    </html> 
+0

你不会阻止提交 – charlietfl

回答

2

有多种problmes ...

  1. 如果验证失败
  2. 没有与ID USERNAME的元素

尝试

validate方法必须返回false
<form name="userSurvey" onsubmit="return validName()"> 

然后

function validName() { 
    var Name = document.userSurvey.userName.value; 
    if (Name == "") { 
     alert("Please enter your name."); 
     document.userSurvey.userName.focus(); 
     return false; 
    } 

} 

演示:Fiddle

+0

@ p.s.w.g是...纠正 –

+0

非常感谢你!工作很棒! – user3003100

0

当你有这样的问题,你应该更容易让别人帮你。

例如你可以把它当成一个JSFiddle,这次我为你做了。

http://jsfiddle.net/anaran/eA4eW/

我也并入修复了。

如上图所示,并按照一个解决方法:

<input type="text" size="30" name="userName" id="userName" />