Php 需要解决IE8jQuery问题吗

Php 需要解决IE8jQuery问题吗,php,jquery,mysql,ajax,json,Php,Jquery,Mysql,Ajax,Json,在我的发展过程中,我遇到了一个奇怪的问题。以下是我的jquery代码,用于在页面加载时加载2个日期选择器,这2个日期选择器将禁用不可用的日期,以下是代码: $(document).ready(function () { $('#textfield1').datepicker( "destroy" ); $('#textfield2').datepicker( "des

在我的发展过程中,我遇到了一个奇怪的问题。以下是我的jquery代码,用于在页面加载时加载2个日期选择器,这2个日期选择器将禁用不可用的日期,以下是代码:

$(document).ready(function () {

                                $('#textfield1').datepicker( "destroy" );
                                $('#textfield2').datepicker( "destroy" );
                                $("#loading2").html('<img src="images/loading.gif"/>');
                                var dataString = 'a=b';
                                $.ajax({
                                    type: "GET",
                                    url: "include/getdate.php",
                                    data: dataString,
                                    success: function(data){

                                        $(".tempimg").hide();

                                        $("#textfield1hid").datepicker({ 
                                            showOn: "button",
                                            buttonImage: "/images/calendar.gif",
                                            buttonImageOnly: true,
                                            dateFormat: 'd M yy',
                                            altField: "#textfield1",
                                            altFormat: "yy-mm-dd",
                                            beforeShowDay: reservedDates
                                        });
                                        $("#textfield2hid").datepicker({ 
                                            showOn: "button",
                                            buttonImage: "/images/calendar.gif",
                                            buttonImageOnly: true,
                                            dateFormat: 'd M yy',
                                            altField: "#textfield2",
                                            altFormat: "yy-mm-dd",
                                            beforeShowDay: reservedDates
                                        });
                                        natDays = data;
                                        function reservedDates(date) {
                                            for (i = 0; i < natDays.length; i++) {
                                              if (date.getMonth() == natDays[i][0] - 1
                                                  && date.getDate() == natDays[i][1]) {
                                                return [false, natDays[i][2] + '_day'];
                                              }
                                            }
                                          return [true, ''];
                                        }
                                            $("#loading2").html('');
                                        }
                                    });
                                    return false;
                                });
IE8加载页面后,文本字段仍如下所示

<input name="textfield1hid" disabled="disabled" id="textfield1hid" style="background-color: #a0a0a4;" type="text"/>
下一个文本字段也有相同的属性,我很久以前就添加了这些属性,然后将它们全部删除。其他浏览器即使在IE7上也可以正常工作,但问题出在IE8上


有人能帮我解决这个问题吗?

我记得在IE中遇到过类似的问题,当时我没有指定预期的响应格式。尝试在ajax请求中设置数据类型,如下所示:

$.ajax({
    type: "GET",
    url: "include/getdate.php",
    data: dataString,
    dataType: 'json',
    success: successCallback
}
此外,如果要捕获错误,您应该能够指定如下错误回调:

$.ajax({
    ....
    error: errorCallback
    ....
}

function errorCallback(jqXHR, textStatus, errorThrown) {
    alert(jqXHR);
    alert(textStatus);
    alert(errorThrown);
}
这将有助于调试。

您可以尝试以下方法:

将数据类型更改为文本

并评估数据

natDays=评估+数据+


你能打开F12快捷方式上的“开发者工具”吗?检查JavaScript控制台上的错误消息并发布在这里?@zindel:那里没有错误消息:你能尝试将cache:false选项添加到$.ajax函数中,看看是否有帮助吗?你试过使用$'textfield1'。attrdisabled,disabled;而不是trueyes,当涉及到数据类型时会出现问题:'json'实际上我的服务器响应不是json,它只是一个数组,但即使我添加了数据类型'json'firefox,ie7也给出了正确的结果,但是其他浏览器失败了,请看一下我的服务器响应,它不是json响应我已经提到过它了,但它不起作用,这就是我删除它的原因,伙计:添加了关于如何调试的信息。谢谢,我会尝试,但还有一件事,当我用编辑过的文件更新服务器时,IE8会使用非常旧的文件,可能是一个IE8缓存,我从IE8中删除了所有缓存,但它仍然使用旧的文件,任何修复它的声音的想法都非常奇怪,它会缓存。您知道服务器响应的内容类型头是什么吗?它应该是application/json。现在我没有从服务器发送json,因为这个php服务器有旧版本的php php 5.1 json,所以我在服务器端创建了一个类似json的数组并将其发送到客户端,但这是头,它将其作为application/json Accept application/json,text/javascript,*/*;q=0.01Wow。这是公认的答案吗?这是可行的,但想到有人会在生产代码中使用它,我就不寒而栗。我客户的服务器有旧版本的PHP,它不支持JSON,就是这样,我必须从服务器端创建一个数组,否则我可以使用$JSON_encode,但非常感谢diEcho:这将对我下次有所帮助
$.ajax({
    type: "GET",
    url: "include/getdate.php",
    data: dataString,
    dataType: 'json',
    success: successCallback
}
$.ajax({
    ....
    error: errorCallback
    ....
}

function errorCallback(jqXHR, textStatus, errorThrown) {
    alert(jqXHR);
    alert(textStatus);
    alert(errorThrown);
}
JSON.parse('[{"some":"json"}]');
JSON.stringify([{some:'json'}]);