【问题标题】:Form validation Javascript is not responding表单验证 Javascript 没有响应
【发布时间】:2015-02-05 19:21:08
【问题描述】:

几秒钟前,它还在工作,我没有改变任何东西。我的网络应用程序是一个简单的网络应用程序。 Javascript 在将表单重定向到 servlet 之前负责表单验证。我做错了什么?

表单验证未验证。我是一个新手程序员,所以请帮忙。

// form-validation (javascript)
function validateForm() {
    var firstname = document.forms["myForm"]["förnamn"].value;
    var lastname = document.forms["myForm"]["efternamn"].value;
    var address = document.forms["myForm"]["address"].value;
    var email = document.forms["myForm"]["email"].value;
    var news = document.forms["myForm"]["news"].value;

    if (firstname == null || firstname == "") {
        alert("Var god och fyll i alla fält!");
        return false;
    } else if (lastname == null || lastname == "") {
        alert("Var god och fyll i alla fält!");
        return false;
    } else if (address == null || address == "") {
        alert("Var god och fyll i alla fält!");
        return false;
    } else if (email == null || email == "") {
        alert("Var god och fyll i alla fält!");
        return false;
    } else if (email.indexOf("@hotmail.com") === -1) {
        alert("Skriv in en korrekt mail-address. exempel@hotmail.com");
        return false
    }
}
//]]>
  </script>
  </head>
<body>
<fieldset style="width: 450px; padding: 20px">
    <div id="page">
        <div id="header">
            <h1>Abdi Tem</h1>
            <h2>Welcome to my website</h2>
        </div>
        <div id="bar">
            <div class="link">
                <a href="Hem.html">Hem</a>
            </div>
            <div class="link">
                <a href="CV.html">INFO</a>
            </div>
            <div class="link">
                <a href="Kontakt.html">Ḱontakt</a>
            </div>
        </div>
    </div>
    <h1>Hyr en programmerare:</h1>
    <form name="myForm" action="ServletProjekt"
        onsubmit="return validateForm()" method="post" id="myForm">
        <table>
            <tr>
                <td>Ditt namn:</td>
                <td><input type="text" name="fornamn" /></td>
            </tr>
            <tr>
                <td>Ditt efternamn:</td>
                <td><input type="text" name="efternamn" /></td>
            </tr>

            <tr>
                <td>Din adress:</td>
                <td><input type="text" name="address" /></td>
            </tr>
            <tr>
                <td>Din email:</td>
                <td><input type="text" name="email" /></td>
            </tr>
            <tr>
                <td>Är ditt ärende akut?</td>
                <td><input type="radio" name="howoften" value="often"
                    checked="checked" />JA <input type="radio" name="howoften"
                    value="not often" />NEJ</td>
            </tr>
            <tr>
                <td>Vad vill du ha hjälp med?</td>
                <td><input type="checkbox" name="news" value="Java"
                    checked="checked" />Programmering <input type="checkbox"
                    name="news" value="C" />Felsökning/Debugging</td>
            </tr>
            <tr>
                <td>Hur många timmar kommer ditt ärende att ta?</td>
                <td><select name="age">

                        <option>10-20h</option>
                        <option>30-40h</option>
                        <option>50-60h</option>
                        <option>70h+</option>

                </select></td>
            </tr>
        </table>
        <hr />
        <input type="submit" name="submit" value="Beställ" />
    </form>
</fieldset>
 </body>
 </html>

【问题讨论】:

  • 使用 Firefox 和 Web 开发人员工具查看它,以便您可以调试和单步执行 Javascript 并查找错误。
  • 您能否澄清“表单验证未验证”的含义?输入错误信息时是否发布?浏览器是否向您抛出错误?究竟是什么没有验证?
  • @KHeaney 它应该在字段为空时发出警报,几分钟前它就这样做了。
  • 发生了什么?表单操作仍在处理中吗?提交时没有发生任何事情吗?浏览器开发人员工具是否在发布时显示 javascript 错误?此外,您似乎在最后一个返回语句中缺少分号

标签: java javascript forms servlets


【解决方案1】:

表单中的 onsubmit function() 应该返回 true。

尝试在所有条件都考虑到验证后返回 true

 function validateForm()

【讨论】:

  • 之前试过了,功能还是没有响应。还是谢谢!
  • document.forms["myForm"]["förnamn"].value,名字和输入元素不一样,能不能验证一下,可能是JS破了
  • 对应的输入元素是
【解决方案2】:

看到这个: http://jsfiddle.net/phpadqcr/

我在 块内将您的 javascript 代码移动到结束 html 标记之前,我在这里发现了一个错字:

    var firstname = document.forms["myForm"]["förnamn"].value;

您可以通过将“förnamn”替换为“fornamn”来修复它。

【讨论】:

    【解决方案3】:

    代码中有两个错误

    1) ["förnamn"] : unicode 字符

    2) 最后一个 return 语句缺少半列 (;)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2017-08-17
      • 2021-05-08
      • 2013-04-05
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      相关资源
      最近更新 更多