jQuery 实现可编辑下拉框。

HTML的下拉框可以让用户方便地选择项目,但是如果要允许用户随意添加选项呢?有朋友建议我使用一个按钮,添加自定义项目。不过我还是倾向于在下拉框里做手脚。

在select中添加一项,其它。value=-1 select中class中增加 editable 然后js代码如下。

$.fn.editable = function(config)
{

	$(this).each(function(i,t){

		$(t).change(function(){
			var me=$(this);
			me.find('.customval').remove();
			if(-1 == me.val())
			{
				var ed = $("<input type=\"text\" class=\"form-control\" />");
				me.after(ed).hide();
				ed.blur(function(){
					var v=ed.val();
					if(null === v ||  v.length ==0){
						ed.remove();me.val(null).show();
					}else{
						me.append("<option value=\""+v+"\" class=\"customval\" selected>"+v+"</option>").show();
						ed.remove();
					}
				}).focus();
			}
		})
	});
}


当用户选择其它,select会摇身一变,变成一个 input。输入选择内容后。该项会自动添加到下拉列表并选中。当用户选择其它项目,用户添加的自定义项目又会被自动删除。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值