jquery实现动态生成和删除输入框

jquery实现动态生成和删除输入框

因为项目里要使用到动态生成和删除输入框并且不保留原参数的方式,所以不能用hidden直接隐藏(公司使用的框架不允许form里有多余值),因此自己做了一个动态生成和删除输入框的小例子,添加输入框时会保存原来输入框里的值,删除输入框时也会将值删除掉。

以下就是代码片:
<html>
<head>
<title>onunload test</title>
</head><script src="./js/jquery-2.0.3.min.js"></script>
<script>

var num = document.getElementsByTagName("input").length;
cun = new Array();//一个数组,用来存变动时原输入框值
var a = 0;

function onin(e,a){
    a = a; 
    cun[a] = e;
}

function addn(){
     num++;//var len = document.getElementsByTagName("input").length;
     if(num==1){
        $("div").html($("div").html()+"<span name='"+num+"'"+"><input type='text' name='"+num+"' oninput=onin(this.value,this.name) ></input></span>");
     }else{
        $("div").html($("div").html()+"<span name='"+num+"'"+">--<input type='text' name='"+num+"' oninput=onin(this.value,this.name) ></input></span>");
    }//新增输入框,注意此时原来输入框的value会被清除
    for(var i=1;i<=num;i++){
        $("div").find('input[name='+i+']').attr('value', cun[i]);//将保存在数组中的值放回原输入框value
    }
}

function deln(){
    if(num>1){
        var child = $("div").find('span[name='+num+']');
        var cc = $("div").find('input[name='+num+']');
        cun[num]='';//此处要删除数组中的元素,否则删除的输入框位置再次新增时,会直接将数组中的值赋上去
        $("div span").last().remove();//移除要删除的输入框,remove移除元素文本、数据及事件;detach只移除文本,保留数据及事件;empty只移除此元素下的内容
        num = num-1;

    }
}

</script>
<body>

<button id="a" onclick="addn()">add</button>
<button id="b" onclick="deln()">del</button>
<div></div>
</body>

</html>

若需要,自行将此代码复制运行即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值