【发布时间】:2014-04-24 12:53:10
【问题描述】:
我有这个问题,如果我在下拉列表的 .change 事件上禁用 JQuery 控件,该控件将重置为其默认状态。
我有以下代码:
ASP.NET:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<script type='text/javascript' src="jquery-1.11.0.min.js"></script>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem Value="1">Item1</asp:ListItem>
<asp:ListItem Value="2">Item2</asp:ListItem>
</asp:DropDownList>
</div>
</form>
</body>
<script type="text/javascript">
$("#DropDownList1").change(function () {
$("#DropDownList1").attr("disabled", "disabled");
});
</script>
</html>
代码背后:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
因此,使用该代码,如果您将所选项目从 DropDownList1 切换,它将在 PostBack 上重置为其默认状态。如果控件没有被 Jquery 禁用,它不会重置控件。
如何使它在被禁用时在 PostBack 上保持其值?
【问题讨论】:
-
你需要什么,取消回发?
-
您可能需要将 JavaScript 的当前状态存储在 sessionstate 对象中并在回发时调用它。
-
克里斯,我现在就试试这个。
-
但是如果您需要进行回发,为什么不禁用 onselecteIndexchange 中的 DDL,简单且没有复杂性。
-
回发时仍会重置该值
标签: c# javascript jquery asp.net