更正表单错误

时间:2015-05-28 23:38:57

标签: javascript html

我试图这样做,如果用户没有输入他们的名字和姓氏,就会发出警告信息。代码看起来正确,但它不起作用。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">

<script type="text/javascript"> 
function func(){
        var first = getElementByID("fname").value;
        var last = getElementByID("lname").value;
        var email = getElementByID("mail").value;
        var phone = getElementByID("phone").value;
if ( first == "" && last =="")
            {
                    alert("Please Enter First and Last Name");


            }
</script>
</head>
<body>
<form id="survey" name="survey" method="post">
        First Name:<br>
        <input type="text" id="fname" name="fname"><br>
        Last Name:<br>
        <input type="text" id="lname" name="lname"><br>
        Email:<br>
        <input type="email" id="mail" name="mail"><br>
        Phone Number:<br>
        <input type="text" id="phone" name="phone"><br><br>

        <input type="submit" onclick="func()">
    </form>
</body>

3 个答案:

答案 0 :(得分:2)

  1. 使用document.getElementById,而不是getElementByID

  2. if应该使用||(或者),而不是&&(AND),因此如果两个字段都为空,则会发出警报,而不仅是两个字段都为空时。

  3. 为了防止表单提交,验证函数必须返回falseonclick属性需要返回值。

  4. 最好使用表单的onsubmit处理程序,而不是提交按钮的onclick处理程序。

  5. 所以JS应该是:

    function func(){
        var first = getElementByID("fname").value;
        var last = getElementByID("lname").value;
        var email = getElementByID("mail").value;
        var phone = getElementByID("phone").value;
        if ( first == "" && last =="") {
            alert("Please Enter First and Last Name");
            return false;
        }
    }
    

    ,HTML应为:

    <form id="survey" name="survey" method="post" onsubmit="return func()">
        First Name:<br>
        <input type="text" id="fname" name="fname"><br>
        Last Name:<br>
        <input type="text" id="lname" name="lname"><br>
        Email:<br>
        <input type="email" id="mail" name="mail"><br>
        Phone Number:<br>
        <input type="text" id="phone" name="phone"><br><br>
    
        <input type="submit">
    </form>
    

答案 1 :(得分:0)

if ( first == "" && last =="")

表示如果第一个和最后一个为空,警告将仅显示 。 尝试使用:

if ( first == "" || last =="")

答案 2 :(得分:0)

  1. 使用 document.getElementById(&#39; fname&#39;),而不是getElementByID
  2. 您的情况出错,请先尝试一下(首先==&#34;&#34; || 最后==&#34;&#34;) (首先是空的或者最后是空的) - &gt;错误
  3. 编辑,代码片段,在您的代码中,脚本末尾缺少一个}

    &#13;
    &#13;
    function func(){
      var first = document.getElementById("fname").value;
      var last = document.getElementById("lname").value;
      var email = document.getElementById("mail").value;
      var phone = document.getElementById("phone").value;
      if ( first == "" || last =="")
      {
        alert("Please Enter First and Last Name");
        return false;
      }
      
      return true;
     } 
    &#13;
    <form id="survey" name="survey" method="post" onsubmit="return func();">
            First Name:<br>
            <input type="text" id="fname" name="fname"><br>
            Last Name:<br>
            <input type="text" id="lname" name="lname"><br>
            Email:<br>
            <input type="email" id="mail" name="mail"><br>
            Phone Number:<br>
            <input type="text" id="phone" name="phone"><br><br>
    
            <input type="submit" value="submit">
    </form>
    &#13;
    &#13;
    &#13;