在jQuery更改函数上删除和追加元素

时间:2011-03-22 07:56:33

标签: php jquery append element

我们正在使用以下代码在文本更改上附加更多输入元素:

$(document).ready(function() {
$('#instal').change(function() {
    var instalval = parseInt($(this).val());
    if(instalval != '') {
    for( i = 0; i < instalval; i++) {
        $('#fields').append(' <li class="inputs clearfix"><input type="text" class="small" size="30" name="date" placeholder="Date" /> <input type="text" class="small" size="30" name="amount" placeholder="Amount" /> <span title="Remove this" class="ui-icon ui-icon-closethick closefield"></span> </li>');
    }
    }  
});
$('.closefield').live('click', function() {
$(this).parent().remove();
});
});

我们使用html5输入类型=“数字”作为值,但是如果我们选择6则添加6个元素,之后如果我们选择12则添加12到最后添加6个元素,因此总数元素将是18而不是12(在选择12),那么我们如何修复我们的代码来实现这一目标,如果我们在选择12之后再次选择6,我希望这是有意义的。感谢。

即使你可以帮忙我们如何使用php发布到mysql?

1 个答案:

答案 0 :(得分:1)

您可以在回调的开头放置一个if语句,检查#fields元素的子元素是否具有类inputs。如果是,则删除它们。

$(document).ready(function() {
$('#instal').change(function() {
    if($('#fields').children().hasClass('inputs')) {
        $('.inputs').remove();
    }
    var instalval = parseInt($(this).val());
    if(instalval != '') {
        for( i = 0; i < instalval; i++) {
            $('#fields').append(' <li class="inputs clearfix"><input type="text" class="small" size="30" name="date" placeholder="Date" /> <input type="text" class="small" size="30" name="amount" placeholder="Amount" /> <span title="Remove this" class="ui-icon ui-icon-closethick closefield"></span> </li>');
            $(function() {
                 $( ".small" ).datepicker({ minDate: "+" + i.toString() + "M" });
            });
        }
    }  
});

$('.closefield').live('click', function() {
    $(this).parent().remove();
 });

这是针对jQuery UI datepicker:

$(function() {
    $( ".date" ).datepicker();
});

这是为了确定日期范围:

$(function() {
    $( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });
});