我有以下代码,在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-j}中突出显示了这个文本。{/ 1}}。
答案 0 :(得分:5)
1)你有一个额外的;
$('a.js-make-profile-image').click(function(){;
在这一行的末尾。
如果这不能解决您的问题,请使用IE报告的错误更新您的问题
2)我认为由于name
属性的价值,您也可能会发生冲突。
您同时拥有type
属性和name="type"
:
既然您通常也可以通过 <element>.<name>
访问DOM元素,那么<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
不是空元素。
答案 1 :(得分:2)
我可以复制此错误的唯一方法是使用IE8并将隐藏字段附加到像图像标记一样愚蠢的东西。
你能检查'.append-here'是否为div?如果你可以粘贴那些有帮助的html以及它失败的哪个版本的IE?