jQuery实现select下拉框选中数据触发事件

今天刚做了一个通过select下拉框修改数据的功能,因为select没有click点击事件,所以当选中下拉框中的数据后,使用onchange事件,但是在js中应该写bind(“change”,function(){…})。注意这里用的是change,不是onchange。
下面是我做的实例:
1、body下的内容:

<select id="data" class="data" name="${o.id }" size="1">
                                                    <c:forEach items="${cc }" var="cc">
                                                        <option value="${cc.data}" <c:if test="${cc.data== o.data}">selected</c:if>>${cc.data}</option>
                                                    </c:forEach>
                                            </select>

这是我项目里的代码,有些东西可能不是大家需要的,我把关键的东西一会放在后面说。
2、js代码:

$(".data").bind("change",function(){
            var dataname = $(this).val();
            var url = "basic/update/updateData?id="+$(this).attr("name");
            $.post(url,{"dataname":dataname},function(rd){
                if(rd.flag){
                    layer.msg("修改成功");
                    window.location.reload();
                }else{
                    layer.alert(rd.msg);
                }
            })
        });

这是走后台方法修改数据的代码,用到的框架是spring MVC。

大家可以看到,我用的是class绑定的时间,其实用id也可以,只是我的项目里在表格中有很多下拉框,使用id只能修改一条数据,使用class可以对所有数据进行修改;name属性是获取到当前这条数据的id;后面是用post提交数据,对于向后台传递数据的方法可以使用自己的方法。

### jQuery Select Change Event 示例 在处理下拉框 (`<select>`) 的选项变化时,可以通过绑定 `change` 事件实现页面响应。以下是基于提供的引用内容以及专业知识构建的一个完整示例。 #### 绑定 `change` 事件的代码示例 通过 jQuery 提供的方法 `.on()` 或直接使用 `.change()` 来监听 `<select>` 元素的变化,并执行相应的回调函数。 ```javascript // 初始化下拉框并绑定 change 事件 $(document).ready(function () { $('#testselect').on('change', function () { const selectedValue = $(this).val(); // 获取当前选中的值 console.log(`Selected value is: ${selectedValue}`); // 打印到控制台 alert(`You have selected option with value: ${selectedValue}`); // 弹窗提示 }); }); ``` 上述代码展示了如何利用 jQuery 中的 `.on('change')` 方法监听用户的选择操作[^1]。每当用户改变下拉框的选项时,都会触发该方法内的逻辑。 如果需要动态添加新选项至下拉框,则可以结合 `.append()` 和 `.trigger('change')` 完成更新后的自动触发: ```javascript // 动态添加新选项并触发展开框的 change 事件 const newOption = $('<option>', { value: 'new-value', text: 'New Option' }); $('#testselect') .append(newOption) // 添加新的 <option> .val('new-value') // 设置为当前选中项 .trigger('change'); // 触发 change 事件 ``` 这段代码片段说明了如何向已存在的下拉菜单追加一个新的选项,并立即模拟一次选择行为以激活关联的功能[^2]。 对于更复杂的场景,例如集成第三方库 (如 Select2),则需先完成插件初始化后再设定默认值或手动触发事件: ```javascript // 使用 Select2 插件的例子 $("#exampleSelect").select2(); // 设定默认值并通过 val 参数同步状态 $("#exampleSelect").val("bar").trigger("change"); ``` 这里提到的技术细节表明,在某些特定框架或者增强组件的情况下,除了基本的操作外还需要额外考虑其内部机制才能正确实施预期功能[^4]。 最后值得注意的是原生 JavaScript 同样支持类似的交互方式,只是 API 形式略有不同而已。例如采用标准 DOM 接口下的 addEventListener 函数也能达到同样的效果[^3]: ```javascript document.getElementById('nativeSelect').addEventListener('change', function(event){ let selection = this.value; console.info(`Native JS detected a change to "${selection}"`); }) ``` 以上就是有关于 jQuery 下拉框选中变更时触发相应动作的具体实践方案及其变体形式介绍。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值