JQuery код удалитьAttr проблема - PullRequest
1 голос
/ 13 апреля 2011
<input id="mnc" type="text"/>
<input type="text" id="selected" />

$('#mnc').val().length ? $('#selected').attr({
    'size': $('#mnc').val()
}) : $('#selected').removeAttr('size');

Это приводит к ошибке в Firefox 4.

Индекс или размер отрицательный или превышает допустимую сумму "код:" 1

Другие браузеры могут обрабатывать removeAttr, даже если атрибут не существует.Что я делаю, так это проверяю, пустой ли ввод #mnc, затем удаляю размер атрибута из #selected, существует он или нет.

Чек http://jsfiddle.net/zFCtU/1/

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

Это ошибка в Firefox, см. отчет об ошибке jQuery . Обходной путь должен присутствовать для jQuery Version >= 1.6.

Редактировать: К сожалению, исправление должно быть выпущено с 1.6 (не 1.5.2, как я писал ранее). Firefox 4.0.1 должен исправить это на стороне Firefox. Вы должны либо принять решение, что 4.0.1 установлена, либо применить патч самостоятельно.

1 голос
/ 13 апреля 2011

вот фрагмент, на который можно посмотреть, он работает

$('#mnc').change(function () {
    if ($(this).val().length > 0) {
        $('#selected').attr({'size': $(this).val().length});
    } else {
        $('#selected').removeAttr('size');
    }
});
0 голосов
/ 13 апреля 2011

Почему бы вам не попробовать сначала установить его, а затем сбросить, чтобы убедиться, что он всегда существует?

$('#selected').attr('size','').removeAttr('size');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...