`

文本搜索框下拉多选框效果

 
阅读更多
实现文本框搜索多选框选择功能:
文本框搜索,多选框响应检索结果,选中触发事件后触发模版切换操作。
涉及到焦点触发显示多选框,ajax中文乱码处理等。






前端代码:
<div class="col right" id="change_copy_model">
        <%=render :partial=>"model_text"%>                      
</div>


#'_model_text.html.erb'
 <label class="label label">模版复制:</label>
                  <span style="position: relative; float: left;">
                  <input type="text" id ="projectNameText" onclick="click_text_show()" style="width:220px;position:absolute" placeholder="输入文字检索"/>
                  <div style="overflow-x: auto; overflow-y: auto;height:155px;width:259px; border:solid 1px;border-color:#B0C1D3;background-color:#ffffff;position: absolute; visibility: visible; z-index: 1000;margin-top:23px;display:none;" id="myare0" onmouseover="MM_over(this)" onmouseout="MM_out(this)" >
                  <%=select_tag 'copy_model[report][]', @yourarrarys.collect{|c| [c.name,c.id]}), :multiple => true, :size => 10,:onchange=>"check_model()",:style=>"width:259px;position: absolute; visibility: visible; z-index: 1000;"%>
                  </div>
                  </span>
                  <a href="#" onclick="searchProjectName()">
                  <img border="0" style="POSITION:absolute;margin-left:205px;margin-top:2px;" src="/stylesheets/themes/ultrapower/images2/find.jpg" id="hide_img">
                  </a>





JS代码:
<script type="text/javascript">
//点击隐藏模版复制列表
  document.onclick=function(e){
  var b=jQuery('#myare0')
  var el = window.event.srcElement;
  if(jQuery('#myare0').css("display")=="block"&&el.id!= 'projectNameText'&&el.parentNode.id!= 'myare0'&&el.parentNode.parentNode.id!= 'myare0'){
      jQuery('#myare0').hide();
  }
  }

//模版切换响应
  function check_model(){
window.location.href='/freed_report/ult_report_models/copy_report_model?id='+jQuery('#copy_model_report_').val()
}

//模版搜索按钮触发post事件
  function searchProjectName(){
    var mytext=document.getElementById("projectNameText").value;
    var myurl="/freed_report/ult_report_models/check_model_text?text_input="+mytext
    //url中文转码
    myurl=encodeURI(myurl);
    myurl=encodeURI(myurl); 
  $.ajax({
      type: "POST",
      url: myurl ,
      contentType: "application/x-www-form-urlencoded; charset=utf-8", 
      success: function(msg){
        $("#change_copy_model").empty();
        $("#change_copy_model").append(msg);
      },
      error: function(msg){
      }
    });
  }

//模版搜索框控制模版列表显隐
 function click_text_show(){
   jQuery('#myare0').show();
 }

//模版列表鼠标划入、划出事件
function MM_over(mmObj) {
	var mSubObj = mmObj;
	mSubObj.style.display = "block";
        mSubObj.style.backgroundColor = "#ffffff";
}
function MM_out(mmObj) {
        var mSubObj = mmObj;
         var el = window.event.srcElement;
         mSubObj.style.display = "none"
        }


</script>



后台代码:
def check_model_text
    #模版模糊查询
    @model_text_search=CGI::unescape(params[:text_input])
    @ult_report_models=FreedReport::UltReportModel.find(:all,:conditions=>"name like '%#{@model_text_search}%' ",:order=>"name desc,area_gran,time_gran")
    render :partial => 'model_text'
  end
  • 大小: 10.3 KB
  • 大小: 71.3 KB
  • 大小: 33.8 KB
0
0
分享到:
评论

相关推荐

    tkinter自定义多选下拉列表框(带滚动条,全选)

    `OptionMenu`是tkinter内建的一个下拉列表组件,但默认情况下,它不支持多选。因此,我们需要自定义一个组件来实现这个功能。这通常涉及到创建一个`ttk`的`Combobox`,并添加一些额外的逻辑来处理多选和滚动条。 1....

    C# ASP.net 下拉框自动搜索查询功能

    设置`AutoPostBack="true"`是为了在文本改变时自动回发页面,`OnTextChanged`事件用于触发搜索操作。初始化时,可以添加一个默认的选项,例如"请选择"。 接下来,在对应的.aspx.cs后台代码文件中,我们需要处理`...

    11款下拉式多选框

    尽管主要目的是创建可折叠的导航菜单,但经过适当的定制,也能实现下拉多选框的效果。 8. **jquery-textext**:这是一个jQuery插件,专注于文本输入框的增强,包括自动完成、筛选和多选等功能。它可以用于创建更...

    combobox 下拉多选框带搜索功能

    在IT领域,尤其是在Web开发中,"Combobox"或下拉多选框是一种常见的交互元素,它结合了输入框和下拉列表的功能,允许用户在预定义的选项中选择一个或多个值。当这个组件增加了搜索功能时,用户体验将得到显著提升,...

    前端项目-angularjs-dropdown-multiselect.zip

    3. **搜索过滤**:内置搜索框允许用户输入关键词快速筛选所需选项,提高查找效率。 4. **分组展示**:如果数据源包含层次结构,可以自动或手动进行分组显示,使信息结构清晰。 5. **自定义模板**:允许开发者根据...

    bootstrap 多选框

    Bootstrap Select是一款基于Bootstrap框架的插件,用于增强和美化HTML的选择元素,特别是下拉多选框。这个"bootstrap-select-master"压缩包很可能包含了该插件的源代码、示例、文档和其他相关资源。以下是关于...

    lovcombo-已解决Bug版-带操作详解

    "lovcombo"是ExtJS中的一个特定组件,它是下拉多选框的实现,常常用于在表单中展示一组可选值,用户可以选择一个或多个选项。本教程将深入探讨lovcombo的用法,以及如何解决已知的Bug。 首先,lovcombo的核心功能...

    前端项目-myforce-angularjs-dropdown-multiselect.zip

    - `dropdown-multiselect.directive.js`: 包含了自定义指令的JavaScript代码,实现下拉多选框的功能逻辑。 - `dropdown-multiselect.css` 或 `.scss`: 提供了样式支持,确保组件在页面上正确显示。 - `index.html`: ...

Global site tag (gtag.js) - Google Analytics