下拉框点击事件&JS操作

前几天遇到一个问题:当你点击一个选择下拉框内容时,另一个地方显示这个内容的详细介绍
例如: 点击“北京” 在一个文本框里显示北京的详细介绍信息
“上海” 在一个文本框里显示上海的详细介绍信息
我采用的是JavaScript 辅助实现:
下拉框点击事件及JS操作
点击下拉菜单选项内容 显示相应的内容消息在另一个地方展现
---------------------------
方法1用javaScript+onChange()事件 操作实现
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%@ page import="com.eline.epicc.insurance.*"%>
<%@ page import="com.eline.epicc.insurance.model.*"%>
<%@ page import="java.util.*"%>
<%
ArrayList list = new ArrayList();
list = Insurances.GetInsuranceTypeInfos();
%>
<script>
function fnChange(){

var oCar=document.frm.oCars.options[document.frm.oCars.selectedIndex].text; //得到select name="oCars"的文本
var index=document.frm.oCars.options[document.frm.oCars.selectedIndex];//当前所选择的那一项
//alert(document.frm.oCars.options[document.frm.oCars.selectedIndex]);
//document.frm.oData.value+=oCar + "\n";
var len=document.getElementById("Cont").options.length; //得到隐藏的select 的长度
for(var i=0;i<=len;i++)
{
if(index.value==document.getElementById("Cont").options[i].value)
document.getElementById("conID").value=document.getElementById ("Cont").options[i].text;
}
}
</script>
<form name="frm" action="" method="post">
<%String option="北京是中国的首都"; %>
<select name="oCars" id="typeID" onChange="fnChange()">
<%
for(int i=0;i<list.size();i++){
InsuranceTypeObj obj = (InsuranceTypeObj)list.get(i);
%>
<option value="<%=obj.getIn_ID()%>"><%=obj.getIn_Genre() %></option>
<%} %>
</select>
<select name="cty" id="Cont" style="display:none">
<%
for(int i=0;i<list.size();i++){
InsuranceTypeObj obj = (InsuranceTypeObj)list.get(i);
%>
<option value="<%=obj.getIn_ID()%>"><%=obj.getIn_Explain()%></option>
<%} %>
</select>
<input type=text id="conID" name="Content" value="北京是中国的首都" readonly>
</form>

-----------------------------
方法2用简单一点的方法 操作实现

<tr height="25">
<td>请选择:</td>
<td>
<select name="in_TypeID" id="in_TypeID" onchange="javaScript:document.all.item('ts').innerHTML=this.options[this.selectedIndex].show;">

<%
for(int i=0;i<list.size();i++){
InsuranceTypeObj obj = (InsuranceTypeObj)list.get(i);
%>
<option value="<%=obj.getIn_ID()%>" show="<%=obj.getIn_Explain() %>"><%=obj.getIn_Genre() %></option>
<%} %>
</select><br> 
<span name="ts" id="ts">北京是中国的首都</span>
</td>
</tr>

-----------------------------------------------------
方法3

%>
<script type="text/javascript">
function myshow(){
var ts=document.frm.Content;
ts.value=document.frm.oCars.options[document.frm.oCars.selectedIndex].show;

}
</script>
<form name="frm" action="" method="post">
<table>
<tr>
<td>
<select name="oCars" id="typeID" onchange="myshow();">
<%
for(int i=0;i<list.size();i++){
InsuranceTypeObj obj = (InsuranceTypeObj)list.get(i);
%>
<option value="<%=obj.getIn_ID()%>" show="<%=obj.getIn_Explain() %>"><%=obj.getIn_Genre() %></option>
<%} %>
</select>
<input type="text" id="Content" name="Content" value="北京是中国的首都">
</td>
</tr>
</table>
</form>

===完===
### 如何在 EasyUI 中捕获下拉框点击事件 在 EasyUI 的 `combobox` 或者 `combogrid` 组件中,可以通过绑定自定义事件来实现对下拉框点击事件的监听。具体来说,可以利用 jQuery 提供的选择器和事件处理机制完成这一需求。 以下是具体的解决方案: #### 方法一:通过 `onClick` 事件 EasyUI 的 `combobox` 支持内置的 `onClick` 事件,可以直接用于监听选项被点击的情况。当某个选项被选中时,此事件会被触发,传递所选项目的值以及对应的文本内容。 ```javascript $("#myComboBox").combobox({ url: 'data.json', valueField: 'id', textField: 'text', onClick: function (record) { console.log("Selected item:", record); // 输出当前选中的记录 } }); ``` 此处代码展示了如何配置 `onClick` 属性[^1]。每当用户点击某一项时,控制台将打印该项的具体信息。 --- #### 方法二:手动绑定点击事件 如果需要更灵活的方式,也可以直接操作 DOM 节点为其附加额外的行为逻辑。例如,可以在初始化完成后动态设置 `.item-title` 类上的点击行为。 ```javascript $("#myComboBox").combobox(); $(".item-title").off().on("click", function () { var $this = $(this); if (!$this.hasClass("rotated")) { // 显示下拉菜单 $("#myComboBox").combobox('showPanel'); $this.addClass("rotated"); } else { // 隐藏下拉菜单 $("#myComboBox").combobox('hidePanel'); $this.removeClass("rotated"); } }); ``` 这里的关键在于找到目标元素(即带有特定 CSS 类名的部分),通过条件语句决定是否切换其可见状态[^1]。 --- #### 方法三:阻止默认关闭动作 有时希望即使点击外部区域也不会自动折叠列表项,则需重新定义面板关闭的动作响应策略。如下所示: ```javascript $('#myComboBox').combobox({ panelHeight: 'auto' }).combobox('panel').panel({ onClose: function () { $('#myComboBox').combobox('showPanel'); // 强制保持打开状态 } }); ``` 这段脚本确保无论何时试图隐藏弹窗都会立即再次展示出来[^2]。 --- ### 注意事项 - 如果涉及复杂业务场景下的交互反馈,请务必确认前端框架版本兼容性。 - 对于异步加载的数据源记得等待完全渲染后再执行后续操作[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值