2013-04-06 96 views
0

我有這個JS腳本shoudl檢查形式的所有的Fileds。 問題是這個函數沒有被調用,我不明白爲什麼。提交不火的jQuery功能

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

function validateEmail(email) {   
    var pattern = "/^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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函數發送的數據。 有什麼問題?

在此先感謝

回答

1

將ID添加到窗體而不是按鈕。

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

這會創建一個重複的ID。 – Barmar 2013-04-06 09:41:59

+0

剛剛認出他有一個帶有該ID的按鈕,已更新!謝謝! – 2013-04-06 09:43:25

+0

哦,是的。有用! – cyberfido 2013-04-06 10:11:35

0

該按鈕的處理程序沒有submit()。使用click()處理程序。

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

}); 
+0

非常感謝!這是問題的一部分 – cyberfido 2013-04-06 10:12:13

0

您的表單沒有ID。正因爲如此,它沒有得到你的提交功能。

提交按鈕只有一個點擊事件,沒有提交事件。

+0

是的。這就是問題。謝謝! – cyberfido 2013-04-06 10:12:51

1

它應該是:

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

事件發生在表單的提交,不提交按鈕。

+0

是的。真正。非常感謝你! – cyberfido 2013-04-06 10:13:22