Javascript jQuery函数在IE7中不起作用
我目前正在开发这个小型AJAX新闻信函注册表单,以允许用户订阅邮件列表。尽管这在几乎所有的浏览器上都能工作,但在IE7及以下版本上却不起作用。我想知道我的源代码是否有问题,或者是否有一种替代方法可以用纯javascript实现相同的功能 下面是我的javascript:Javascript jQuery函数在IE7中不起作用,javascript,jquery,internet-explorer,internet-explorer-7,Javascript,Jquery,Internet Explorer,Internet Explorer 7,我目前正在开发这个小型AJAX新闻信函注册表单,以允许用户订阅邮件列表。尽管这在几乎所有的浏览器上都能工作,但在IE7及以下版本上却不起作用。我想知道我的源代码是否有问题,或者是否有一种替代方法可以用纯javascript实现相同的功能 下面是我的javascript: $(document).ready(function(){ /* Form Appear Effect */ $('#exists').hide(); $("#formParts").hide(); $("#thanks").h
$(document).ready(function(){
/* Form Appear Effect */
$('#exists').hide();
$("#formParts").hide();
$("#thanks").hide();
$("#wait").hide();
$('#exists').css({"visibility":"hidden"});
$('#email').click(function() {
$('#formParts').slideDown();
});
/* AJAX Form Submission */
$('#submitButton').click(function () {
//Reset Form
$('.blogSignUp').css('border', '1px solid #E6E6E6');
$('.blogSignUp').attr('enabled','true');
// Extract Variable
var firstName = $('#firstName').val();
var lastName = $('#lastName').val();
var email = $('#email').val();
// Check for Blank Bields
if (firstName == "" || lastName == "" || email == "") {
if (email == "")
$('#email').css('border', '1px solid #E42217');
if (firstName == "")
$('#firstName').css('border', '1px solid #E42217');
if (lastName == "")
$('#lastName').css('border', '1px solid #E42217');
return false;
} else {
// Check Email
if (echeck(email) == false) {
$('#email').css('border', '1px solid #E42217');
return false;
} else {
// Disable and Hide Forms for now...
$('#formParts').slideUp ();
$('#form').slideUp();
$('#exists').fadeOut();
// Show processing message...
$("#wait").fadeIn();
var data = $('#signup').serialize();
// Show processing message...
$("#wait").fadeIn();
$.ajax({
type: 'POST',
url: '../signup.php',
data: {
action: 'signupFunction',
firstName: firstName,
lastName: lastName,
email: email,
},
error: function(MLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
},
success: function(result, status) {
//alert(result);
if (result == "Good") {
$("#exists").fadeOut();
$("#wait").fadeOut();
$("#thanks").fadeIn();
}
if (result == "Exists") {
$('.blogSignUp').css('border', '1px solid #E6E6E6');
$('#email').css('border', '1px solid #E42217');
$("#wait").fadeOut();
$("#exists").fadeIn();
$('#formParts').slideDown();
$('#form').slideDown();
return false;
}
}
});
}
}
}); }); function echeck(str) {
var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
return false
}
if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
return false
}
if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
return false
}
if (str.indexOf(at,(lat+1))!=-1){
return false
}
if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
return false
}
if (str.indexOf(dot,(lat+2))==-1){
return false
}
if (str.indexOf(" ")!=-1){
return false
}
return true }
非常感谢您使用advanced。假设您的代码没有错误,您可以随时为IE7执行硬编码工作 用户jQuery来检测用户正在使用的浏览器,并创建一个条件来说明他们是否在IE7中,执行此操作\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
(如果你想知道为什么是IE7,那就省省时间,停下来吧。浏览器因引起开发人员问题而臭名昭著,尤其是jQuery。很可能这不是你的错,是浏览器的错。)嘿,我想唯一的问题是
Problem at line 62 character 33: Extra comma.
email: email,
还可以尝试使用JSLINT检查代码中的错误。IE对这些错误非常具体
data: {
action: 'signupFunction',
firstName: firstName,
lastName: lastName,
email: email,
}
应该是
data: {
action: 'signupFunction',
firstName: firstName,
lastName: lastName,
email: email
},
IE在数组的最后一个变量中插入逗号时会中断,firefox不会。您认为IE7中会发生什么以及实际发生了什么?如果你不告诉我们你想要它做什么或者它做错了什么,那么很难告诉你代码出了什么问题。不起作用,怎么做?有错误吗?性能问题?我没有试过,但它是“email:email”后面的多余逗号吗?IE将在其他浏览器更宽容的地方失败。要使用@moopet,请确保所有分号都已准备就绪。