javascript - 返回 false 不会阻止表单提交

标签 javascript forms validation

我需要使用 JavaScript 验证表单,并且需要同时显示所有消息。例如,如果缺少名字和姓氏,则会出现两条消息。我已经使用下面的代码解决了这个问题,但表单仍然被返回到服务器。 P 租赁见下文:

function validateForm() {
    var flag = true;
    var x = document.forms["myForm"]["firstname_4"].value;
    if (x == null || x == "") {
        document.getElementById("fNameMessage").innerHTML = "First name is  required";
        flag = false;
    } else {
        document.getElementById("fNameMessage").innerHTML = "";
    }

    var x = document.forms["myForm"]["surname_5"].value;
    if (x == null || x == "") {
        document.getElementById("sNameMessage").innerHTML = "Surename is required";
        flag = false;
    } else {
        document.getElementById("sNameMessage").innerHTML = "";
    }
    var y = document.forms["myForm"]["selectid"];
    if (y.options[y.selectedIndex].value == "Title") {
        document.getElementById("titleMessage").innerHTML = "You need to select a title";
        flag = false;
    } else {
        document.getElementById("titleMessage").innerHTML = "";
    }

    return flag;
}

我的表格和事件:

<form action=""method="post" accept-charset="UTF-8" name="myForm" onsubmit="return validateForm();">

我的按钮:

<input type="submit" class="button" name="submit" id="submit" value="Submit">

最佳答案

您的代码:

var y = document.forms["myForm"]["selectid"];
if (y.options[y.selectedIndex].value == "Title") 

...触发异常但您没有捕获它:

Uncaught TypeError: Cannot read property 'options' of undefined

因此 JavaScript 代码停止运行。

关于javascript - 返回 false 不会阻止表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458876/

相关文章:

javascript - 计算 JSON 数据中嵌套元素的出现次数

javascript - 图的数学方程

ruby-on-rails - 覆盖SecurePassword的验证错误消息

javascript - 将数组嵌入对象传递到动态表单的 ember.js 路由时遇到问题

javascript - Firefox 不会提交由 JavaScript 创建的表单

c# - PlayFab - 为纸牌游戏创建自定义验证服务器

validation - Grails 自定义验证消息不起作用?

javascript - 在 Bootstrap 中垂直对齐 DIV

javascript - 我的代码可以在 jQuery 1.3.2 上运行,但不能在 1.6.4 上运行

javascript - 创建一个没有 Action 的 Laravel Blade Form