.append вызывает ошибку IE - PullRequest
       6

.append вызывает ошибку IE

2 голосов
/ 10 февраля 2012

У меня есть следующий код, который отлично работает в FF, но функция .append() предупреждает ошибку в IE. Кто-нибудь может сказать мне, если что-то не так с моим кодом, или это проблема IE?

Цель состоит в том, чтобы добавить скрытое поле в форму (оно будет отличаться в зависимости от того, что пользователь нажимает), а затем я отправляю форму.

$(function(){

    $('a.js-make-profile-image').click(function(){
        $('.append-here').append('<input type="hidden" name="action-type" value="profile-image" />');
        document.forms['attachment-action-form'].submit();
    });

});

Отладчик IE выдает ошибку Unexpected call to method or property access, и этот текст выделяется отладчиком в jQuery - this.nodeType===1&&this.appendChild(a).

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

1) у вас есть дополнительный ;

$('a.js-make-profile-image').click(function(){;

в конце этой строки.
если это не решит вашу проблему, пожалуйста, обновите ваш вопрос с ошибкой, сообщенной IE

2) Я думаю, что у вас также может возникнуть конфликт из-за значения вашего атрибута name.

У вас есть атрибут type и name="type":
поскольку вы обычно можете получить доступ к элементу DOM также через <element>.<name>, что именно <input>.type должно вернуть? Значение атрибута элемента type или ссылка на элемент ввода в DOM?

, поэтому попробуйте изменить значение атрибута name

3) если ничего не изменилось, попробуйте изменить код

$('.append-here').append('<input type="hidden" name="type" 
                           value="profile-image" />');

в

$('<input />').attr({
    "type"  : "hidden",
    "name"  : "action-type",
    "value" : "profile-image"
}).appendTo($('.append-here'));

и, как вы обнаружили, убедитесь, что элемент append-here не является пустым элементом.

2 голосов
/ 10 февраля 2012

Единственный способ, которым я могу продублировать эту ошибку, - это использовать IE8 и добавить скрытое поле к чему-то ненормальному, например к тегу изображения.

Не могли бы вы проверить, что «.append-here» - это div?Если бы вы могли вставить HTML, который помог бы, и в какой версии IE он не работает?

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