发布于2021-10-10 16:31 阅读(1423) 评论(0) 点赞(4) 收藏(1)
您将检查的那些代码片段适用于 FF、Chrome、Safari,但在运行 jQuery 克隆功能时似乎是 IE 的问题:
我的模板:
<form method="post" action="/post/add/">
{{ form.management_form }}
<div class='table'>
<table class='no_error'>
<input id="id_mypost_set-0-title" type="text" name="mypost_set-0-title" />
<input id="id_mypost_set-0-content" type="text" name="mypost_set-0-content" />
</table>
</div>
<input type="button" value="Add Other" id="add_more">
<script>
$('#add_more').click(function() {
cloneMore('div.table:last', 'mypost_set');
});
</script>
</form>
在 javascript 文件中:
function cloneMore(selector, type) {
var newElement = $(selector).clone(true);
var total = $('#id_' + type + '-TOTAL_FORMS').val();
newElement.find(':input').each(function() {
var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
var id = 'id_' + name;
$(this).attr({'name': name, 'id': id}).val('').removeAttr('checked');
});
newElement.find('label').each(function() {
var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
$(this).attr('for', newFor);
});
total++;
$('#id_' + type + '-TOTAL_FORMS').val(total);
$(selector).after(newElement);
}
问题出在选择器上:“原始 html 代码的克隆工作正常”,但是,克隆代码的克隆将选择器标记为“未定义”,换句话说,我第二次克隆表选择器不再适用于那些克隆的项目。
仅适用于 IE 的问题。
我缺少什么?任何提示都值得赞赏:)
这是一个已知的 jQuery 错误,尽管他们声称它已修复。
这里的一种选择是使用.html()
,并手动克隆它们。这不会克隆 events 和 saved .data
,这对您来说可能是一个问题。.live
如果您在这里有活动,可以提供帮助。
如果您唯一需要的是更改名称和 ID,则更好的选择是使用正则表达式(这会从第一个元素克隆事件,请注意):
var name = $(this).attr('name').replace(/-\d+-/,'-' + total + '-');
这将搜索-number-
并替换它,因此它会在所有浏览器或-0-
IE上找到最后一个数字。
这是一个带有警报的工作演示:http : //jsbin.com/evapu
作为旁注 - 您的代码有点混乱。jQuery 代码应该在里面$(document).ready
(点击),你有一个没有主体的表格(没有<tr>
,<td>
- 输入被抛出),并且代码有一些重复。
尽管在这种情况下没有帮助,但无效的 DOM 和不使用该ready
事件可能会导致问题。
作者:黑洞官方问答小能手
链接:http://www.qianduanheidong.com/blog/article/200852/49f59812b553240e30c2/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!