在回发后禁用从jQuery启用的按钮

时间:2014-06-11 06:11:02

标签: javascript jquery asp.net .net telerik

我在我的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);
}

这是我在回发后启用按钮的最佳方式吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

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

btnAdd.Enabled = true;

答案 2 :(得分:-1)

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

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

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