可选择可输入的select

(function($){
		$.fn.selectbox = function(){
			//用变量idm存储select的id或name
			var idm = $(this).attr("id") || $(this).attr("name");

			if($("#" + idm + "div").length <= 0){//判断动态创建的div是否已经存在,如果不存在则创建
				var divHtml = "<div style='display:none' id='" + idm + "div'><input name='' type='text' id='" + idm + "inputText'/></div>";
				$(this).attr("tabindex",-1).after(divHtml);
				$("#" + idm + "div").css({position:"absolute",top:$(this).position().top ,left:$(this).position().left}).show();
				$("#" + idm + "inputText").val($(this).find("option:selected").text()).css({width:$(this).width()-13,height:$(this).height() + 2});
				$("#" + idm + "inputText").attr("name",$(this).val());
				//select注册onchange事件
				$(this).change(function(){
						$("#" + idm + "inputText").val($(this).find("option:selected").text());	
						$("#" + idm + "inputText").attr("name",$(this).val());	
				})				
			}
			//解决ie6下select浮在div上面的bug
			$("#" + idm + "div").bgIframe();

			var res={"val": $("#" + idm + "inputText").attr("name"),"text":$("#" + idm + "inputText").val()};
			//return $("#" + idm + "inputText").val();
			//return $("#" + idm + "inputText").attr("name");
			return res;
		}
})(jQuery);

调用时如下:
<input id="tx" type="button" name="" value="测试获得的select值" onclick='alert("选中val:" + $("#test1").selectbox().val+"\u000d选中text:" + $("#test1").selectbox().text)'/>
 

猜你喜欢

转载自hrc200808.iteye.com/blog/2280897