#jquery #jqgrid #validation
#jquery #jqgrid #проверка
Вопрос:
Я использую jqgrid и плагин jquery validate на одной странице, но когда я включаю плагин validate, jqgrid не может загрузить данные json. Когда я удаляю плагин validate, он начинает работать отлично. Я получаю следующую ошибку.
Недопустимая строка метки: 0, столбец: 1 Исходный код: {«страница»:»1″
Комментарии:
1. Вы должны дополнить свой вопрос HTML-кодом и JavaScript-кодом, которые могут быть использованы для воспроизведения проблемы. Как jqGrid, так и jQuery. Validate.js могут сосуществовать. Вы должны включить информацию о версиях jQuery, jqGrid и jQuery validate, которые вы используете.
Ответ №1:
Я мог бы воспроизвести вашу проблему с помощью jQuery Validate 1.7. Я мог бы предложить очень простое решение: прокомментировать следующие строки jQuery.Validate.js:
// ajax mode: abort
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
;(function($) {
var ajax = $.ajax;
var pendingRequests = {};
$.ajax = function(settings) {
// create settings for compatibility with ajaxSetup
settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
var port = settings.port;
if (settings.mode == "abort") {
if ( pendingRequests[port] ) {
pendingRequests[port].abort();
}
return (pendingRequests[port] = ajax.apply(this, arguments));
}
return ajax.apply(this, arguments);
};
})(jQuery);
Если вы используете последнюю версию jQuery 1.8.Проверка (вы можете скачать ее здесь), похоже, никаких проблем не существует.
Комментарии:
1. Я думаю, что это вернулось в 1.8.1 jQuery. Проверка …!
2. @Sai Krishna: Я это не тестировал, но мне кажется, что код закрытия существует в версиях 1.8.1 и 1.9.0, только если вы будете использовать какую-нибудь «ретро» версию jQuery. Начиная с jQuery 1.5, существует метод jQuery.ajaxPrefilter , и jQuery Validate 1.8.1 и 1.9.0 используют его вместо перезаписи
$.ajax
.