我正在使用.NET 4和JQuery来显示/隐藏Div,具体取决于从DDL中选择的内容。当我手动单击下拉列表时,Jquery将按预期方式触发,并显示/隐藏字段。但是,当我以编程方式更改DDL的selectedValue时,Jquery根本不会触发。我有一个带有两个选项的单个ddl,一个和重复选项,我显示了所选的div,而另一个隐藏了。
$(document).ready(function () {
$("#MainContent_ddlScheduleType").change(function () {
$('#Single').hide();
$('#Recurring').hide();
var newSelection = "#" + this.value;
$(newSelection).fadeIn('slow');
});
});
在实际页面中,有两个下拉字段,第一个是数据库表中当前所有作业的列表。这些作业可以运行一次或多次(单次,重复)。用户从第一个下拉列表中选择作业的名称。存储过程从数据库中获取该作业的信息,并将其存储在客户端变量中。然后,我比较该客户端变量以确定是否应该更改下拉菜单。这是完成大多数工作的事件处理程序。再次总结一下,当您从第一个下拉菜单中选择作业时,第二个下拉菜单应该发生变化以反映它是单调还是单调(成功发生!),但是Jquery并未实际显示相应的Single / Recurring Div它应该显示。
protected void ddlJobList_SelectedIndexChanged(object sender, EventArgs e)
{
string Frequency = null;
SqlParameter sqlParameter = new SqlParameter("@JobName", ddlJobList.SelectedItem.Text);
DataTable dt = SqlHelper.GetDataTable("zzGetJobInformation", CommandType.StoredProcedure, sqlParameter);
if (!(dt.Rows[0]["Frequency"] is DBNull))
Frequency = dt.Rows[0]["Frequency"].ToString();
if (Frequency == null)
ddlScheduleType.SelectedValue = "Single";
else
ddlScheduleType.SelectedValue = "Recurring";
}
有什么原因不会导致Jquery触发?
我在这里看:
jQuery drop down list change event not fire
尽管我没有使用MVC,但是我以前有过,所以我可以关联看起来与我非常相似的代码。不幸的是,“解决方案”的链接不再有效,并且他们的回答不是很描述性。我可以肯定地说,firebug中没有报告任何控制台/ javascript错误。
c#参考方案
好的,这可以解释得更好。混淆来自服务器和客户端代码的混合。我建议使用一个或另一个来管理下拉列表和影响,而不是同时管理两者。
同时使用这两种方法意味着您必须处理回发,Webforms事件并在客户端(jquery)和服务器(.net)上维护状态,这很麻烦。
我要么使用webforms来管理UI的状态,要么将jquery和ajax请求与页面方法,asmx或另一种asp.net处理程序一起使用来管理UI的状态。
jQuery DataTable TableTool在IE和Firefox中不起作用 - c#我在MVC4 ASP.NET Web应用程序中使用Jquery DataTable TableTool。导出到Excel和PDF可以与Chrome完美配合。但是不能在IE和FireFox中使用。我的代码如下 dom: 'T<"clear">lfrtip', tableTools: { "sSwfP…
jQuery val函数在隐藏字段上不起作用? - javascript这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …
jQuery-根据用户输入显示/隐藏 - php我的页面上有以下div:<div id="page1"> Some content </div> <div id="page2"> More content </div> <div id="page3"> Even more content…
为HTML表单GET方法添加其他文本 - javascript使用表单的“ get”方法时,<form action="domain.com" method="get"> Surname: <input type="text" name="ABC"><br> Name: <input type=…
将评论框脚本编辑为动态 - c#为了将facebook插件注释框的脚本编辑为动态的并单独显示与每个帖子相关的注释,我在脚本中添加了以下两行代码:var related = document.getElementById('fb-related'); related.setAttribute("data-href", "articles.as…