论坛提交按钮是否将我重定向到一个未知的网页?

时间:2014-08-26 00:44:37

标签: javascript html

我正在尝试使用html创建一个“与我们联系”论坛。

这是我目前的html:

<form id="contact_form" name="contact_form" method="post" action="validate()">
    <div class="row">
        <label for="name" class="desc" style="font-size: 30px;">Your name:</label><br />
        <input id="name" class="input" name="name" type="text" value="" size="50" /><br />
    </div><br /><br />
    <div class="row">
        <label for="email" class="desc" style="font-size: 30px;">Your email:</label><br />
        <input id="email" class="input" name="email" type="text" value="" size="50" /><br />
    </div><br /><br />
    <div class="row">
        <label for="message" class="desc" style="font-size: 30px;">Your message:</label><br />
        <textarea id="message" class="input" name="message" rows="8" cols="50"></textarea><br />
    </div>
    <div class="row"><br />
    <input id="submit_button" type="submit" value="Send email"/>
    </div>
    </form>

我的javascript:

function validate() {
    //Make sure name is filled out
    var x = document.forms["contact_form"]["name"].value;
    if (x == null || x == "") {
        alert("Name must be filled out");
        return false;
    }
    //Make sure email is filled out
    var x = document.forms["contact_form"]["email"].value;
    if (x == null || x == "") {
        alert("Email must be filled out");
        return false;
    }
    //Make sure message is filled out
    var x = document.forms["contact_form"]["message"].value;
    if (x == null || x == "") {
        alert("Message must be filled out");
        return false;
    }
    //Validate email
    var x = document.forms["contact_form"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");
    if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=x.length) {
        alert("Not a valid email");
        return false;
    }

}

出于某种原因,当我点击“提交”时,它会将我带到一个名为“validate()”的页面。我怎样才能使它在我点击提交时执行它执行函数validate(),而不仅仅是带我到一个页面名为validate()...

注意:没关系php,现在关注html和javascript

1 个答案:

答案 0 :(得分:0)

它会将其重定向到该页面,因为您要将操作设置为去那里。那不会执行JavaScript。您正在寻找onsubmit。

action="validate()"更改为onsubmit="return validate();"

和往常一样,最好是不显眼而不是内联设置它。