【问题标题】:Button enabled from jQuery is disabled after postback回发后禁用从 jQuery 启用的按钮
【发布时间】:2014-08-01 02:05:33
【问题描述】:

我在我的 asp 页面中使用了一个 asp 按钮和一个 telerik radcombobox,并且该按钮最初被禁用标记。当用户从 radcombobox 中选择一个项目时,将触发 OnClientSelectedIndexChanged 事件,并且我正在启用该按钮。但是一旦它启用并且我单击按钮,它在回发后再次被禁用。

    <telerik:RadComboBox ID="rcbModel" runat="server" Skin="MetroTouch" Width="100%"
    EmptyMessage="Select Model" Height="120px" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
    <Items>
        <telerik:RadComboBoxItem runat="server" Text="Model 1" />
        <telerik:RadComboBoxItem runat="server" Text="Model 2" />
    </Items>
</telerik:RadComboBox>
<asp:Button ID="btnAdd" runat="server" Text="Add" Enabled="false" />

脚本:

function OnClientSelectedIndexChanged() {
  $('#<%=btnAdd.ClientID %>').prop("disabled", false);
}

在回发后启用按钮的最佳方法是什么?

【问题讨论】:

  • SelectedIndexChanged 有什么问题?服务器端的启用按钮。 telerik.com/help/aspnet-ajax/…
  • @Satpal 我从客户端需要它,所以我使用 OnClientSelectedIndexChanged 事件而不是服务器端 SelectedIndexChanged 事件。
  • 然后使用隐藏字段/本地存储来存储按钮的状态(启用/禁用)。然后在页面加载时设置其状态。
  • 这个函数在哪里定义的?
  • 您能找到解决问题的方法吗?

标签: javascript jquery asp.net .net telerik


【解决方案1】:

您可以尝试在添加按钮上放置一个更新面板。

【讨论】:

    【解决方案2】:

    保留 javascrit 代码并在回发时执行相同的工作,在后面的代码中,检查 racombobox 的项目,如果其更改启用您的按钮。

    btnAdd.Enabled = true;
    

    【讨论】:

      【解决方案3】:

      保持 JavaScript 和 RadComboBox 标记相同,并从按钮的标记中删除 Enabled="false" 代码。在页面的服务器端Page_Load事件中,根据是否选择了一个值来设置按钮的Enabled属性:

      public void Page_Load(object sender, EventArgs e)
      {
          btnAdd.Enabled = (rcbModel.SelectedIndex > -1);
          //...
      }
      

      当显示 RadComboBox 的空消息文本时,在您的情况下为“选择模型”,SelectedIndex 值将为 -1。

      【讨论】:

      • Downvoter:下一次,现在告诉我,我可以改进我的答案。另外,尝试自己回答问题,尝试对其他答案进行投票,并尝试对问题进行投票。扎实的努力。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2014-12-02
      相关资源
      最近更新 更多