只有当所有表单字段都不为空时,如何才能使按钮转到下一页

时间:2016-11-27 15:13:03

标签: javascript html forms button required

我有一个提交表单的按钮,但我也希望它链接到另一个页面。如果填写表单中的所有字段(所有字段都是必需的),我只希望它链接到下一页。我认为这将涉及JavaScript,这很好,但我想避免使用jQuery。感谢。

2 个答案:

答案 0 :(得分:1)

通常这样做的方法是将正常表单提交与 POST-Redirect-GET 相结合(服务器接受表单提交,然后重定向页面)。

使用普通表单提交,您只需将字段标记为required,如下所示:

<form method="post" action="/what/ever">
  <label>Name: <input required></label>
  <label>Email: <input type="email" required></label>

  <input type="submit" value="Send">
</form>

<强> Example

表单提交成功后,将页面从服务器端重定向到下一页(或者在出现错误的情况下重定向到错误页面)。

答案 1 :(得分:0)

使用HTML5 required字段可以轻松地在客户端完成表单验证。

<input type="text" required />

但是,所有浏览器都不支持HTML5,对于那些您可以使用基于JavaScript的解决方案。这可以以无数种方式实现。例如,通过在提交按钮上添加事件侦听器,验证所有字段都是非空的,否则会阻止提交。

var form = document.forms["form-name"];
var formFields = form.getElementsByTagName("input");

form.addEventListener("submit", function (event) {
    var validationOk = true;
    for (var i = 0; i < formFields.length; i++) {
        if (formFields[i].value == "") {
            validationOk = false;
            // Here you probably also want to give the user some kind 
            // of feedback by adding a class to the field or similar
        }
    }
    if (!validationOk) {
        event.preventDefault();
    }
});

但是,请注意,从安全角度来看,您应该永远不要信任客户端验证,而是在服务器端执行,只要验证不仅仅是为了改善用户体验