jquery.selectInput.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. (function($){
  2. $.fn.selectInput = function(){
  3. //用变量idm存储select的id或name
  4. var idm = $(this).attr("id");
  5. if($("#" + idm + "div").length <= 0){//判断动态创建的div是否已经存在,如果不存在则创建
  6. var divHtml = "<div style='display:none' id='" + idm + "div'><input type='text' id='" + idm + "inputText'/></div>";
  7. $(this).attr("tabindex",-1).after(divHtml);
  8. $("#" + idm + "div").css({position:"absolute",top:$(this).position().top ,left:$(this).position().left}).show();
  9. $("#" + idm + "inputText").val($(this).val()).css({width:$(this).width()-18,height:$(this).height() });
  10. //select注册onchange事件
  11. $(this).change(function(){
  12. $("#" + idm + "inputText").val($(this).val());
  13. });
  14. //inputText注册onchange事件
  15. $("#" + idm + "inputText").change(function(){
  16. var inputV=$("#" + idm + "inputText").val();
  17. var had=false;
  18. $.each($("#"+idm).children("option"),function(i,opt){
  19. if($(opt).val()==inputV){
  20. had=true;
  21. $("#"+idm).val(inputV);
  22. }
  23. });
  24. if(had==false){
  25. var opt='<option value="'+inputV+'" selected="selected">'+inputV+'</option>';
  26. $("#"+idm).append(opt);
  27. }
  28. });
  29. }
  30. //解决ie6下select浮在div上面的bug
  31. $("#" + idm + "div").bgIframe();
  32. return $("#" + idm + "inputText").val();
  33. };
  34. })(jQuery);