提交不会激活jquery函数

时间:2013-04-06 09:39:32

标签: php jquery forms

我有这个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 个答案:

答案 0 :(得分:1)

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

<form id="contact_submit" method="post" name="form" action="email.php">

答案 1 :(得分:1)

应该是:

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

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

答案 2 :(得分:0)

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

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

});

答案 3 :(得分:0)

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

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