为了账号安全,请及时绑定邮箱和手机立即绑定

未触发 JQuery 下拉列表/选择 onchange 事件

未触发 JQuery 下拉列表/选择 onchange 事件

大话西游666 2023-06-15 17:28:49
我在 asp.net 表单中有这个 dropodownlist/combobox/select 元素:<asp:DropDownList  ID="_ddlMode"  runat="server"  AppendDataBoundItems="true"  ClientIDMode="Static"  CssClass="input_medium"  DataSourceID="_sdsModes"  DataTextField="description"  DataValueField="id"> <asp:ListItem Selected="True" Text="None" Value="" /></asp:DropDownList>SetModes()当用户更改所选元素时,我需要调用函数。我试过这个: $(function () {   $(document.body).on('change', '_ddlMode', function () {       var _index = $("select[id='_ddlMode'] option:selected").index();       SetModes(_txtBank, _txtZip, _index);   }); });没有运气。然后我试了这个: $(function () {    _ddlMode= $("input[id$='_ddlMode']");    _ddlMode.change(        function () {           var _index = $("select[id='_ddlMode'] option:selected").index();           SetModes(_txtBank, _txtZip, _index);        }    );});再次没有运气......错误在哪里?有更有效的方法来检索事件处理中所选元素的索引吗?PS我正在使用jquery-.2.1.3,jquery-ui-1.11.2
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

所以,你愿意在你的javascript代码中使用一个方法,但它不适合你。它没有击中它的背后可能有很多原因,我会在这里写一些可能的原因及其各自可能的解决方案。


原因:

由于您使用 jQuery 将下拉列表与更改事件绑定,我怀疑您的 jQuery 是否被正确引用。


解决方案:

转到浏览器的开发工具选项console卡 ( CTRL++ ) 并查看是否存在未加载 jQuery 的任何错误,如果是则修复它SHIFT。I


原因:

在绑定事件#之前,您没有指定 css 选择器。id


解决方案:


$(function () {

   $(document.body).on('change', '#_ddlMode', function () {

       var _index = $("select[id='_ddlMode'] option:selected").index();

       SetModes(_txtBank, _txtZip, _index);

   });

 });

原因:

您的事件未绑定到所需的控件。这可能非常特定于ASP.NETWeb 窗体,因为您在构建 Web 应用程序时可能会遇到它。


因此,从技术上讲,ASP.NET可以在编译控件时修改控件的 ID,这可能是未命中该方法的可能原因。


例如,如果您有一个ContentPlaceHolder带有一个idofcph_1并且其中有标记作为您的子页面,那么ASP.NET将将该 id 与您的每个嵌套服务器控件连接起来。因此,如果您在该内容占位符中有一个textbox带有一个idof ,则在浏览该页面时它会被修改为。tb1cph1_tb1


解决方案:

借助此语法 ( <%%>) 绑定您的事件,如下所示:


$(function () {

   $(document.body).on('change', '#<%= _ddlMode.ClientID %>', function () {

       var _index = $("select[id='<%= _ddlMode.ClientID %>'] option:selected").index();

       SetModes(_txtBank, _txtZip, _index);

   });

 });

看看您是否可以使用这些解决方案解决问题。


查看完整回答
反对 回复 2023-06-15
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信