這是可以在這裏找到:http://syllableapp.com/test爲什麼我的註冊表單在除Firefox以外的每個瀏覽器都能正常工作?
基本上,在Safari瀏覽器,鉻,歌劇,WebKit每日等形式精美的作品,並完全按預期。但在Firefox中,只需提交它就不會執行任何操作。爲什麼是這樣?
這裏是我的JavaScript:
$(document).ready(function() {
$('input[type="submit"]').click(function() {
event.preventDefault();
var email = $.trim($('.email').val());
var emailRegEx = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/;
if (email == "" || !emailRegEx.test(email)) {
$(this).effect("shake", { times:2 }, 75);
}
else {
var data = "email=" + email;
$.ajax({
type: "POST",
url: "register_email.php",
data: data,
success: function(data) {
if (data == 1) {
$('form').hide();
$('form').html("<p class='success'>You'll be notified! Welcome aboard.</p>");
$('form').fadeIn(300);
}
else {
$('form').hide();
$('form').html("<p class='error'>Dang, there was an error. <a href='mailto:[email protected]'>Email me?</a></p>");
$('form').fadeIn(300);
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error: " + errorThrown);
$('form').hide();
$('form').html("<p class='error'>Dang, there was an error. <a href='mailto:[email protected]'>Email me?</a></p>");
$('form').fadeIn(300);
}
});
}
});
});
我的PHP:
<?php
$db = new mysqli("localhost", "swuclu_emailer", "etreadmill:(", "swuclu_syllable_emails");
if ($db->connect_error) {
echo "0";
}
else {
$email = $_POST["email"];
$stmt = $db->prepare("INSERT INTO emails (email) VALUES (?)");
$stmt->bind_param("s", $email);
$stmt->execute();
echo 1;
}
?>
究竟是怎麼回事,除Firefox以外每一個瀏覽器將工作?
爲什麼它在其他瀏覽器?是否因爲Firefox在被要求訪問未定義對象上的某個函數時選擇死掉,而其他瀏覽器選擇默默忽略它?或者它與範圍和關閉有關,其他瀏覽器能夠找到'event'對象? –
你必須看看瀏覽器的源代碼。處理這個問題的正確方法是暫停腳本(Firefox執行此操作的方式)。 –