添加 jQuery UI 后服务器端代码未触发

Posted

技术标签:

【中文标题】添加 jQuery UI 后服务器端代码未触发【英文标题】:server side code not firing after adding jQuery UI 【发布时间】:2018-08-25 10:55:31 【问题描述】:

我有一个 ASP.Net 下拉列表

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                </asp:DropDownList>

它在回发时执行此代码

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

    //my code here

但是,当我向它添加 jquery 时,这个下拉列表没有做回发。

<script>
    $('#<%=DropDownList1.ClientID%>').selectmenu();
</script>  

我该怎么办?我想添加 jquery 并执行回发服务器代码。

【问题讨论】:

selectmenu(); 中的代码是什么,能否请您也提供一下 @PranayRana 在 selectmenu() 中什么都没有,实际上它只是将 asp.net 下拉菜单的设计更改为 jquery 下拉菜单。我写错了吗? 检查生成的 html。我 99% 确定 jQuery UI 插件正在改变事件 我不明白。我需要检查什么? 在您选择的浏览器中打开页面并检查 HTML - 通过开发人员控制台(通常为 F12) 【参考方案1】:

尝试如下更改事件触发可以触发服务器端事件

document.getElementById('<%= DropDownList1.ClientID %>').onchange();

$('#<%=DropDownList1.ClientID%>').change(function()  return true;);

或者这也有帮助,它卖的方式,我不太喜欢它,如果它上面一个不起作用,请尝试

$('#<%=DropDownList1.ClientID%>').change(function() 
  __doPostBack("<%#=DropDownList1.ClientID %>","");
);

【讨论】:

以上是关于添加 jQuery UI 后服务器端代码未触发的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 按钮未通过 ajax 触发服务调用

服务器端 Ajax JQuery CRUD DataTable - PHP PDO,MySql

ASP.NET 自定义验证器客户端和服务器端验证未触发

JQuery UI Slider在使用return false停止后恢复

Jquery成功函数未使用JSONP触发

首次加载页面时,Jquery UI 自动完成功能不起作用