0

我几乎完成了我的网站重建工作,现在正处于测试阶段。在 IE7 和 8 中进行测试时,我发现由于 json 脚本,我的 jquery 脚本将无法正常工作,即使它们在包括 IE9 在内的所有其他浏览器中都可以正常工作。

该页面是:http ://www.carcityofdanbury.com/New/?cat=01&do=View&stock=18481

该脚本是信息请求表单,这一行中 ".append("<p>Thank you " + data.name + ",</p><p class=\"indent\">we recieved your info request " + data.for + " on our<br />'.$vehicle.' and will contact you shortly.</p>")"的内容:导致 jquery 选项卡不再工作。

我做了 php 和 jquery 编码,但雇了人来做 json,所以我不知道如何解决这个问题。有任何想法吗?

4

2 回答 2

1

问题在于,data.for听起来有点像您(编写代码的人)正在尝试访问其中一个保留名称。即使data.for应该是有效的,IE 也不喜欢它认为特殊的名称(例如类)。data.class会导致 IE 出现问题,即使它是有效的。

例如,尝试重命名data.for为其他名称data._for。确保更新01/Resources/infoRequest.phpPHP 文件以返回值。

于 2012-04-11T03:35:53.700 回答
1

解决了...代码中有一个额外的逗号:

        <script language="javascript" type="text/javascript">
        $(document).ready(function() {

        // Tabs
            $("#tabs").tabs();

        // Google map
            $(\'#embed\').gmap3(
                {action: \'addMarker\', lat:41.40372, lng:-73.45844, map:{center: true, zoom: 17, mapTypeId: google.maps.MapTypeId.ROADMAP}}
            );

        // Pic popup
            $("#viewPics").fancybox({
                \'type\': \'iframe\', \'transitionIn\': \'fade\', \'transitionOut\': \'fade\', \'width\': 900, \'height\': 500, \'autoScale\': false, \'scrolling\': \'no\'
            });

        // Form Validation
            jQuery.validator.messages.required = "";
            $("#infoForm").validate({

                invalidHandler: function(e, validator) {
                    var errors = validator.numberOfInvalids();
                    if (errors) {
                        var message = errors == 1
                            ? \'You missed 1 required field.\'
                            : \'You missed \' + errors + \' required fields\';
                        $("li.Error span").html(message);
                        $("li.Error").show();
                    } else {
                        $("li.Error").hide();
                    }
                },

                onkeyup: false,
                submitHandler: function(form) {
                    $.ajax({
                        url: "01/Resources/infoRequest.php",
                        type: "POST",
                        cache:false,
                        data: $("#infoForm").serialize(),
                        dataType: "json",
                        success: function(data) {
                            $("li.Error").hide();
                            $("#contact_form").html(\'<div id="message"></div>\');
                            $("#message").html("<h2>Info Request Submitted!</h2>")
                            .append("<p>Thank you " + data.name + ",</p><p class=\"indent\">we recieved your info request " + data.test + " on our<br />'.$vehicle.' and will contact you shortly.</p>")
                            .hide()
                            .fadeIn(2500, function() {
                                $("#message").append("<p>Would you like to <a href=\"?cat=02&stock='.$stock.'\">prefill an application</a> now?</p>")
                            });
                        }
                    });
                }, <------- This guy was the culprit

            });

        });
    </script>
于 2012-04-11T19:25:59.173 回答