我有几个输入框在第一页加载时不存在。它们是由JQuery通过.clone()创建的。
<input type="text" class="myInputs" name="input[0]" />
<input type="text" class="myInputs" name="input[1]" />
<input id="remove" type="button" value="Remove last input">
然后我有一个函数来总结所有这些字段并使用结果发出警告
a)输入字段的onchange函数(像魅力一样工作)和
b)“删除一个输入字段” - 应该删除一个字段然后再次调用该函数的按钮。
$(document).ready( function() {
function calculatesum() {
var sum = 0;
var value = 0;
var error = false;
var count = new Number($("input.myInputs").length);
if(count >= 1) {
$("input.myInputs").each(function() {
if($.isNumeric($(this).val())) {
value = new Number($(this).val());
sum = sum + value;
}
else
error = true;
});
}
if(!error) alert(sum);
else alert("Error");
}
$('body').on('change', 'input.myInputs', function () {
calculatesum();
});
$('#remove').click(function () {
if (confirm("Are you sure?")) {
$('.myInputs:last').slideUp('slow', function () {
$(this).remove();
});
calculatesum();
}
return false;
});
}
现在重点是,在通过按钮功能删除元素后,它仍然获得(先前删除的)输入字段及其值。
我该如何防止这种情况?
答案 0 :(得分:1)
您应该使用.on而不是点击下面的代码片段,例如
$('#remove').on('click', function () {
if (confirm("Are you sure?")) {
$('.myInputs:last').slideUp('slow').remove();
calculatesum();
}