counter是在单击add字段时递增值,而不是在单击remove字段时递减值

counter is increment the value when click on add field but not decrements when click on remove field

本文关键字:字段 单击 remove counter add      更新时间:2023-09-26

单击"添加字段"按钮时,顶部的文本字段显示增量,这是正确的,但当我单击"删除字段"按钮后,值显示的是增量而不是递减。

<div id="awaien">
    <input type="text" value="1" name="cntr" />
</div>
<div class="input_fields_wrap">
    <div class="form-group">
        <label>Email</label>
        <button class="add_field_button">Add More Fields</button>
        <p>
            <input type="text" class="form-control" name="Email" value="<?php echo htmlspecialchars($team->email);?>" />
        </p>
   </div>
</div>

脚本

$(document).ready(function() {
    var scntDiv = $('input_fields_wrap');
    var i = $('#input_fields_wrap p').size() + 1;
    var max_fields = 20; //maximum input boxes allowed
    var wrapper = $(".input_fields_wrap"); //Fields wrapper
    var add_button = $(".add_field_button"); //Add button ID
    var x = 1; //initlal text box count
    $(add_button).click(function(e) { //on add input button click
        e.preventDefault();
        if(x < max_fields) { //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><input type="text" name="Email' + i +'"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
        i++;
        }
    });
    $(wrapper).on("click",".remove_field", function(e) { //user click on remove text
        e.preventDefault();
        $(this).parent('div').remove();
        i--;
        x--;
    })
    });
    $(document).ready(function() {
        $(".input_fields_wrap").on('click',function(){
        $("#awaien input").val(parseInt($("#awaien input").val()) + 1);
    });
    $(".remove_field").on('click',function(){
        $("#awaien input").val(parseInt($("#awaien input").val()) - 1);
    });
});

我们如何解决这个问题,以便当我单击删除字段按钮时,它应该递减?

您的代码中有一些错误,有些逻辑非常奇怪,但我已经尽力纠正:

$(document).ready(function() {
    var scntDiv = $('input_fields_wrap');
    var i = $('#input_fields_wrap p').size() + 1;
    var max_fields = 20; //maximum input boxes allowed
    var wrapper = $(".input_fields_wrap"); //Fields wrapper
    var add_button = $(".add_field_button"); //Add button ID
    var x = 1; //initlal text box count
    $(add_button).click(function(e) { //on add input button click
        e.preventDefault();
        if(x < max_fields) { //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><input type="text" name="Email' + i +'"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
            i++;
        }
    });
    $(wrapper).on("click",".remove_field", function(e) { //user click on remove text
        e.preventDefault();
        $(this).parent('div').remove();
        $("#awaien input").val(parseInt($("#awaien input").val()) - 1);
        i--;
        x--;
    });
    $(".add_field_button").on('click',function(){
        $("#awaien input").val(parseInt($("#awaien input").val()) + 1);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="awaien">
    <input type="text" value="1" name="cntr" />
</div>
<div class="input_fields_wrap">
    <div class="form-group">
        <label>Email</label>
        <button class="add_field_button">Add More Fields</button>
        <p>
            <input type="text" class="form-control" name="Email" value="<?php echo htmlspecialchars($team->email);?>" />
        </p>
   </div>
</div>

您正在执行此部分

$(".remove_field").on('click',function(){
    $("#awaien input").val(parseInt($("#awaien input").val()) - 1);
});

文档外侧已准备好。这意味着按钮还不存在,因此不会连接把手。更改

$(document).ready(function() {
    $(".input_fields_wrap").on('click',function(){
    $("#awaien input").val(parseInt($("#awaien input").val()) + 1);
});
$(".remove_field").on('click',function(){
    $("#awaien input").val(parseInt($("#awaien input").val()) - 1);
});

$(document).ready(function() {
    $(".input_fields_wrap").on('click',function(){
    $("#awaien input").val(parseInt($("#awaien input").val()) + 1);
    $(".remove_field").on('click',function(){
        $("#awaien input").val(parseInt($("#awaien input").val()) - 1);
    });
});