$ .ajax () не работает ни в одном браузере, кроме Firefox - PullRequest
3 голосов
/ 15 декабря 2010

У меня есть небольшой скрипт, который извлекает даты аренды при загрузке страницы, а также извлекает новые даты, если пользователь выбирает другой месяц из выпадающего списка.

Сайт использует jQuery 1.2.3, и япока что с этим покончено (устаревшие скрипты), поэтому я не могу обновиться до 1.4.

Я написал и отладил это в Firefox с помощью Firebug и понял, что он не работает ни в одном другом браузере.Я не уверен почему.В Firefox я определенно получаю новые даты, а div обновляется полученными данными AJAX.Другие браузеры ничего не делают.

$(document).ready(function() {
            $.ajax({
                url: '/rental/get_dates.cfm',
                type: 'POST',
                data: 'date=<cfoutput>#dateFormat(now(), "m-yyyy")#</cfoutput>&rental=<cfoutput>#val(getOneRental.rentalListingID)#</cfoutput>',
                success: function(data) {
                    $('#rental_calendar .rentalRateData').html(data);
                }
            });

        });

        function update_calendar(date) {
            $.ajax({
                url: '/rental/get_dates.cfm',
                type: 'POST',
                data: 'date='+date+'&rental=<cfoutput>#val(getOneRental.rentalListingID)#</cfoutput>',
                success: function(data) {
                    $('#rental_calendar .rentalRateData').html(data);
                }
            });
        }

HTML:

<form name="rental_month" id="rental_month" method="post">
    <select name="month">
        <cfset month_choice = dateFormat(now(), 'm-yyyy')>
        <cfoutput>
            <option value="#lcase(month_choice)#"  onclick="update_calendar('#month_choice#');" class="default">#dateFormat(month_choice, 'mmmm yyyy')#</option>
        </cfoutput>
        <cfloop from="1" to="12" index="i">
            <cfset month_choice = dateFormat(dateAdd('m', i, now()), 'm-yyyy')>

            <cfoutput>
                <option value="#lcase(month_choice)#" onclick="update_calendar('#month_choice#');">#dateFormat(month_choice, 'mmmm yyyy')#</option>
            </cfoutput>
        </cfloop>
    </select>
</form>

    <div id="rental_calendar">
        <table class="rentalRates" cellpadding="0" cellspacing="0" width="98%">
            <tr>
                <th align="left">Arrival</th>
                <th align="right">Rate</th>
            </tr>
        </table>
        <table class="rentalRateData" cellpadding="0" cellspacing="0" width="98%">  

        </table>
    </div>

Почему это работает только в Firefox?Есть ли более простой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Бьюсь об заклад, это функция html (). Я бы попытался предупредить данные, чтобы убедиться, что функции ajax работают, а затем попытаться использовать другой способ, чтобы добавить данные в вашу таблицу.

0 голосов
/ 15 декабря 2010

Вы можете попробовать запустить последнюю версию JQuery для вашего кода. Вот ссылка на пример того, как это сделать:

http://www.comanswer.com/question/how-do-i-run-different-versions-of-jquery-on-the-same-page

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...