0

我有这个 JS 脚本,它应该检查表单的所有文件。问题是这个函数没有被调用,我不明白为什么。

$j(document).ready(function(){  

function validateEmail(email) {         
    var pattern = "/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/";
    return email.match(pattern);  
} 

$j('#contact_submit').submit(function(e){
    if($j('#contact_name').val() == "") {
        e.preventDefault();
        alert("Devi inserire un nome per inviare l'email");
        return false;
    }
    if($j('#contact_email').val() == "") {
        e.preventDefault();
        alert("Devi inserire un contatto email valido per inviare l'email");
        return false;
    }
    if(validateEmail($j('#contact_email').val()) == null)
    {
        e.preventDefault();
        alert("L'email inserita non è in un formato valido");
        return false;
    }
    if($j('#contact_text').val() == "") {
        e.preventDefault();
        alert("Devi inserire un testo per inviare l'email");
        return false;
    }
    return true;
});

});

这是表格

<form method="post" name="form" action="email.php">
<table width="550" border="0" align="center" cellpadding="4" cellspacing="0">
      <td align="right">Nome*</td>
      <td><input maxlength="50" id="contact_name" name="contact_name"  size="30" /></td>
    </tr>
    <tr>
      <td align="right">Città</td>
      <td><input maxlength="50" id="contact_city" name="contact_city" size="30" /></td>
    </tr>
    <tr>
      <td align="right">N. Telefono</td>
      <td><input maxlength="20" id="contact_tel" name="contact_tel" size="30" /></td>
    </tr>
    <tr>
      <td align="right">E-mail*</td>
      <td><input maxlength="30" id="contact_email" name="contact_email"  size="30" /></td>
    </tr>
    <tr>
      <td align="right">Testo *</td>
      <td><textarea cols="50" id="contact_text" name="contact_text" rows="5" class="tinymce"></textarea></td>
    </tr>
    <tr>
      <td colspan="2" align="center">
      <p>I campi contrassegnati con l'asterisco (*) sono obbligatori</p>
      <p>   <input id="contact_submit" type="submit" value="Invia" />
            <input id="contact_reset" type="reset" value="Annulla" />
        </p></td>
    </tr>
</table>
</form>

只需单击提交按钮,就会调用表单并通过电子邮件发送数据,避免使用 jquery 功能。怎么了?

提前致谢

4

4 回答 4

1

将 id 添加到表单而不是按钮。

<form id="contact_submit" method="post" name="form" action="email.php">
于 2013-04-06T09:41:14.990 回答
1

它应该是:

$("form[name=form]").submit(...

提交事件发生在表单上,​​而不是提交按钮上。

于 2013-04-06T09:41:36.970 回答
0

该按钮没有submit()处理程序。使用click()处理程序。

$j('#contact_submit').click(function(e){

});
于 2013-04-06T09:41:19.197 回答
0

您的表单没有 ID。因此,它不会附加您的提交功能。

提交按钮只有点击事件,没有提交事件。

于 2013-04-06T09:41:25.913 回答