使用Jquery删除文本输入框

时间:2012-09-30 16:34:57

标签: javascript jquery input

请看一下

http://jsfiddle.net/tt13/CFbpt/

我需要的是,

  1. 当用户点击+按钮时,添加新文字输入
  2. 当文本框计数达到3时,从第一个文本框隐藏+按钮(用户可以添加最多2个文本框)并在文本框计数时取消隐藏< 3
  3. 当用户点击x按钮
  4. 时,删除父文本框(位于按钮左侧)

    我的+按钮效果很好:它可以即时添加文本框。但x(删除)按钮不会。我错过了什么?

2 个答案:

答案 0 :(得分:4)

是的,表示您当前正在设置您的删除事件,然后按钮才会存在。而是将删除处理程序放在添加按钮事件中:

http://jsfiddle.net/CFbpt/1/

但实际上你应该把你的代码放到问题中,以便其他人可以找到它......

$(document).ready(function(){

    var addCvBtn    = $(".addCvBtn"),
    rmCvBtn    = $(".rmCvBtn"),
    rcmText     = $(".rcmText"),
    btncount    = 0,
    inputhtml = '<div class="cvInputContainer withRemBtn"><input placeholder="CV Linkini daxil edin" name="cvlinks[]" type="text" /><button class="btn btn-medium btn-danger rmCvBtn " type="button"><i class="icon-remove icon-white"></i></button></div>';

addCvBtn.click(function(){
        if(btncount == 3)  addCvBtn.hide();
        else
        {
            $(this).parent().parent().append(inputhtml);
            btncount++;
            rmCvBtn    = $(".rmCvBtn");
            $(".withRemBtn").on('click', ".rmCvBtn", function(){
               addCvBtn.show();
               $(this).parent().remove(); //EDITED
               btncount--;
               alert('deleted');
            });
        }        
    });



 });
编辑:我认为你可能尝试实现的.on()的动态使用是: $(文件)。就绪(函数(){

    var addCvBtn    = $(".addCvBtn"),
    rmCvBtn    = $(".rmCvBtn"),
    rcmText     = $(".rcmText"),
    btncount    = 0,
    inputhtml = '<div class="cvInputContainer withRemBtn"><input placeholder="CV Linkini daxil edin" name="cvlinks[]" type="text" /><button class="btn btn-medium btn-danger rmCvBtn " type="button"><i class="icon-remove icon-white"></i></button></div>';

addCvBtn.click(function(){
        if(btncount == 3)  addCvBtn.hide();
        else
        {
            $(this).parent().parent().append(inputhtml);
            btncount++;
            rmCvBtn    = $(".rmCvBtn");
        }        
    });


 $(document).on('click', ".withRemBtn .rmCvBtn", function(){
               addCvBtn.show();
               $(this).parent().remove(); //EDITED
               btncount--;
               alert('deleted');
            });  
 });

答案 1 :(得分:0)

您需要在delete中声明click个事件。在您编写代码时,您首先设置删除事件,然后添加它。它不起作用,因为btn delete不会在添加'enter code heredelete'事件

的步骤中退出