所以,我在这里要做的是onClick
添加另一个<li>
,就像它上面的那个一样。我在PHP中创建了一个for循环,以在<li>
。
我遇到的问题:当您点击.repatable-add
按钮时,我会收到“更换前”警报两次,并且“更换后”警报根本不会启动。 和想法?
jQuery('.repeatable-add').click(function() {
field = jQuery(this).siblings('ul.image-details').find('li:last').clone(true);
fieldLocation = jQuery(this).siblings('ul.image-details').find('li:last');
jQuery('input', field).val('').attr('name', function(index, name) {
alert(name +' before replace');
return name.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
alert(name +' after replace');
});
})
field.insertAfter(fieldLocation, jQuery(this).siblings('ul.image-details').find('li:last'))
return false;
});
答案 0 :(得分:1)
警报之前有一个返回,因此警报将永远不会执行:
{
return Number(n) + 1;
alert(name +' after replace');
});
答案 1 :(得分:1)
嗯,“替换后”的警告根本没有触发,因为它之前有一个返回语句。
答案 2 :(得分:1)
不完全确定你对输入部分做了什么,但我认为这是因为你在返回后尝试做事。这就是我所拥有的:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.repeatable-add').click(function(){
var copyThis = jQuery(".image-details").find("li:last").clone(true);
jQuery(".image-details").append(copyThis);
var name = jQuery("input").attr("name");
var count = name.replace(/\d+/, '');
var newCount = count++;
jQuery("input").attr("name",name.replace(newCount.toString(),count.toString()));
return false;
});
});
</script>
<ul class="image-details">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<input name="ithas1" />
<button class='repeatable-add'>button</button>