1

我正在尝试使用网络表单构建网站。我正在使用 godaddy 的默认 webform php,但我不确定如何验证必填字段的表单。

我希望用户在验证之前不能提交表单。我发现其他用户在线提交的 javascript 文件解决了这个问题,但我似乎无法让它工作。

<script language="javascript" type="text/javascript">
function checkForm() {
    if (form.FirstName.value == "") {
        alert("Please enter your first name");
        form.FirstName.focus();
        return false;
    }

    if (form.LastName.value == "") {
        alert("Please enter your last name");
        form.LastName.focus();
        return false;
    }
    var email = form.email.value;
    if (email.indexOf('@') == -1) {
        alert("Plelase enter valid email");
        form.email.focus();
        return false;
    }
    return true;
}
</script>

下面是表格:

<form onsubmit="return checkForm()" action="/webformmailer.php" method="post"> 
<input type="hidden" name="subject" value="Submission" /> 
<input type="hidden" name="redirect" value="thankyou.html" />
<span>First Name:</span><br>
<input type="text" name="FirstName"/><br>
<span>Last Name:</span><br>
<input type="text" name="LastName" /><br>
<span>*Email:</span><br>
<input type="text" name="email" /><br>
<span>*Comments:</span><br>
<textarea name="comments" cols="40" rows="10">
</textarea><br>

<input type="submit" name="submit" value="submit"/> <span id ="required">*required field</span>
<input type="hidden" name="form_order" value="alpha"/> <input type="hidden" name="form_delivery" value="daily"/> <input type="hidden" name="form_format" value="html"/> 

我尝试在不输入任何内容的情况下提交,它会将我重定向到谢谢。

4

3 回答 3

3

form函数中没有定义。有几种方法可以处理这个问题。最简单的方法是更改return checkForm()​​为return checkForm(this)

function checkForm(form) {
于 2013-06-05T03:33:29.403 回答
0

在表格中,更改checkForm()checkForm(this)。然后,在您的 javascript 中,更改function checkForm() {function checkForm(form) {

也许这会有所帮助。

于 2013-06-05T03:34:57.423 回答
0

您忘记了两件事:首先,请将name="form"添加到

<form name="form" onsubmit="return checkForm()" action="/webformmailer.php" method="post"> 

第二,您错误地关闭表单,请将此代码添加到 HTML 末尾

</form>

您的 HTML 将如下所示:

<form name="form" onsubmit="return checkForm()" action="/webformmailer.php" method="post"> 
    <input type="hidden" name="subject" value="Submission" /> 
    <input type="hidden" name="redirect" value="thankyou.html" />
    <span>First Name:</span><br>
    <input type="text" name="FirstName"/><br>
    <span>Last Name:</span><br>
    <input type="text" name="LastName" /><br>
    <span>*Email:</span><br>
    <input type="text" name="email" /><br>
    <span>*Comments:</span><br>
    <textarea name="comments" cols="40" rows="10"></textarea><br>
    <input type="submit" name="submit" value="submit"/> 
    <span id ="required">*required field</span>
    <input type="hidden" name="form_order" value="alpha"/> 
    <input type="hidden" name="form_delivery" value="daily"/> 
    <input type="hidden" name="form_format" value="html"/> 
</form>

另一件事在 javascript 中,检查电子邮件地址的功能不正确,正确的是:

var email = form.email.value;
var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;

if (!email.match(re) || !email) {
  // incorrect email address
}

新脚本将是:

<script language="javascript" type="text/javascript">
function checkForm() {
    if (form.FirstName.value == "") {
        alert("Please enter your first name");
        form.FirstName.focus();
        return false;
    }

    if (form.LastName.value == "") {
        alert("Please enter your last name");
        form.LastName.focus();
        return false;
    }
    var email = form.email.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;

    if (!email.match(re) || !email) {
        alert("Plelase enter valid email");
        form.email.focus();
        return false;
    }
    return true;
}
</script>

祝你好运!

于 2013-06-05T04:05:13.233 回答