Задать вопрос

Частичная работа JavaScript

Здравствуйте уважаемые хабрачеловеки.
Столкнулся с такой неприятностью, сделал 1 из клиентов новое оформление админпанели самописного движка. Для этого использовал Twitter Bootstrap. Проверил во всех браузерах, все отлично работает, но звонит клиент и говорит что не работает ряд функций, я естественно быстро за проверку, у меня сново все работает, клиент присылает видео, где действительно не работают описанные им функции.
А не работает переключение табов (табы из коробки Bottstrap) а так же не работает следующая конструкция кода:

$("input[name=cat]").live("click", function(){
if($(this).is(":checked")){
$("select[name=cat]").attr({"disabled":"disabled"});
}else{
$("select[name=cat]").removeAttr("disabled");
}
});


Причем ошибок осел не выкидывает вообще никаких.

Проверял на аналогичных браузерах у себя на компе, все работает на ура. А модальные окна и Bootstrap работают нормально у клиента. Получается что половина функционала куда то пропадает.
Видимо у клиента стоят какие то ограничения, или что то урезает JS.

Сейчас нужно поехать к клиенту, что бы посмотреть на его компе в чем дело, но хотелось бы поехать с конкретными мыслями как это можно поправить.

Подскажите пожалуйста в чем может быть проблема?!

P.S.ОС Windows 7, IE9, Антивирус Касперского!
  • Вопрос задан
  • 3049 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 17
lashtal
@lashtal
кривые правила adblock съедают что-то?
Ответ написан
Комментировать
@Silver_Clash
Попробуйте $('select[name=«cat»]').
Включите вывод ошибок js и посмотрите что пишет браузер.
Ответ написан
trilodi
@trilodi Автор вопроса
Просто этот код работает в аналогичном осле, только на другом компе. ладно, если тут еще можно поэксперементировать, то как быть с табами bootstrip?
Ответ написан
@Silver_Clash
А вообще вместо input[name=cat] лучше обращаться к элементу по id (надеюсь он у Вас один).

Еще очень интересна эта конструкция: .attr({«disabled»:«disabled»});
Я почему то всегда считал что должно быть: .attr(«disabled»,«disabled») (jQuery .attr).
Ответ написан
trilodi
@trilodi Автор вопроса
эллемент не 1 поэтому использовать id не пойдет.
а attr({«disabled»:«disabled»}); использую по привычке, когда добавляю много атребутов.
Ответ написан
altrosilka
@altrosilka
Была похожая проблема. Мне помогло когда-то, не помню сути, если честно.
$('select[name=cat]').attr({'disabled':'disabled'}); => $('select[name=cat]').attr({'disabled':''});
Ответ написан
Комментировать
trilodi
@trilodi Автор вопроса
Меня сейчас не столько конструкция $('select[name=cat]').attr({'disabled':'disabled'}); волнует сколько нерабочие табы. Селект я еще как то могу обойти, но табы это катастрофа!
Ответ написан
Комментировать
MTonly
@MTonly
Веб-разработчик с 2002 года
Я бы попробовал временно отключить Антивирус Касперского.

К элементам форм, кстати, имеет смысл обращаться так:
form.elements['cat']
Ответ написан
Комментировать
p00h
@p00h
Фехтовальщик-стропальщик
Ваш js код (конкретно бутстрапа) минифицируется? Возможно, собирается в один js файл с другими скриптами?
Ответ написан
p00h
@p00h
Фехтовальщик-стропальщик
Посмотреть на проблему вживую, конечно же, невозможно?
Ответ написан
trilodi
@trilodi Автор вопроса
Версия bootstrap v1.4.0
Ответ написан
Комментировать
trilodi
@trilodi Автор вопроса
Вот весь js используемый на странице:


Ответ написан
Комментировать
trilodi
@trilodi Автор вопроса
$(document).ready(function(){

$('.tabs').tabs();

$("form.editorV").live("submit", function(){
var _id=$(this).attr("id");
$("#"+_id+" button").button('loading');
$.ajax({
type: 'POST',
action: "http://payservice.uz/admin.php?cont=vauch",
url: "http://payservice.uz/admin.php?cont=vauch",
dataType: 'html',
async: true,
timeout: 15000,
data: {
ajax: 'update_vaucher',
cat: ($("#"+_id+" .catterc").is(':checked')?$("#"+_id+" .catterc").val():$("#"+_id+" .catter option:selected").attr("value")),
id: $("#"+_id+" input[name=vauchid]").val(),
pin: $("#"+_id+" textarea[name=pin]").val(),
numinal: $("#"+_id+" input[name=numinal]").val(),
usd: $("#"+_id+" input[name=usd]").val(),
descr: $("#"+_id+" textarea[name=descr]").val(),
status: $("#"+_id+" select[name=status]").val(),
date: $("#"+_id+" input[name=date]").val()
},
success: function(data){
$("#"+_id+" button").button('complete');
$("#"+_id+" input[name=cat]").val(($("#"+_id+" input[name=cat]").is(':checked')?$("#"+_id+" input[name=cat]").val():$("#"+_id+" select[name=cat] option:selected").attr("value")));
$("#"+_id+" .cata").text(($("#"+_id+" input[name=cat]").is(':checked')?$("#"+_id+" input[name=cat]").val():$("#"+_id+" select[name=cat] option:selected").attr("value")));
}
});
return false;
});

$(".modal").on("hidden",function(){
var _idsM=$(this).attr("id");
$("#"+_idsM+" button").button('reset');
$("input[name=cat]").attr({"checked":"checked"});
});
$("select[name=cat] option:first").attr({"selected":"selected"});

$(".modal").on("show", function(){
var mID=$(this).attr("id");
$('#'+mID+" .catterc").live("click", function(){
if($('#'+mID+" .catterc").is(":checked")){
$('#'+mID+" .catter").attr({"disabled":"disabled"});
}else{
$('#'+mID+" .catter").removeAttr("disabled");
}
});
});

});
Ответ написан
Комментировать
trilodi
@trilodi Автор вопроса
Перенос строк в коде сделал хабрапарсер!
Ответ написан
Комментировать
p00h
@p00h
Фехтовальщик-стропальщик
По вашему коду: как вариант заменить .attr() на .prop()
По поводу клиента. Непременно запустить код на другом браузере, чтобы исключить или подтвердить участие системы/антивируса в этом злодеянии
Ответ написан
trilodi
@trilodi Автор вопроса
Так и я о том, из всего не работает так как должно только: $('.tabs').tabs();
Ответ написан
trilodi
@trilodi Автор вопроса
Как оказалось все это творит KIS. Пришлось сайт добавить в исключение
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы