jquery - 启用asp.net radiobuttonlist中的特定项目

时间:2012-07-21 05:29:43

标签: jquery asp.net radiobuttonlist

我知道之前已经问过这个问题,但它对我的情况不起作用。 我有一个jquery ui模态表单,其中包含一个带有静态值的radiobuttonlist:

    <asp:RadioButtonList ID="rblSlots" runat="server" ViewStateMode="Disabled">
    <asp:ListItem Value="30" enabled="false">30 Minutes</asp:ListItem>
    <asp:ListItem Value="60" enabled="false">1 Hour</asp:ListItem>
    <asp:ListItem Value="90" enabled="false">1 1/2 Hours</asp:ListItem>
    <asp:ListItem Value="120" enabled="false">2 Hours</asp:ListItem>
    <asp:ListItem Value="150" enabled="false">2 1/2 Hours</asp:ListItem>
    <asp:ListItem Value="180" enabled="false">3 Hours</asp:ListItem>
    </asp:RadioButtonList>

当然会呈现:

    <table id="rblSlots">
    <tr>
    <td><span disabled="disabled"><input id="rblSlots_0" type="radio" name="rblSlots" value="30" disabled="disabled" /><label for="rblSlots_0">30 Minutes</label></span></td>
    </tr><tr>
    <td><span disabled="disabled"><input id="rblSlots_1" type="radio" name="rblSlots" value="60" disabled="disabled" /><label for="rblSlots_1">1 Hour</label></span></td>
    </tr><tr>
    <td><span disabled="disabled"><input id="rblSlots_2" type="radio" name="rblSlots" value="90" disabled="disabled" /><label for="rblSlots_2">1 1/2 Hours</label></span></td>
    </tr><tr>
    <td><span disabled="disabled"><input id="rblSlots_3" type="radio" name="rblSlots" value="120" disabled="disabled" /><label for="rblSlots_3">2 Hours</label></span></td>
    </tr><tr>
    <td><span disabled="disabled"><input id="rblSlots_4" type="radio" name="rblSlots" value="150" disabled="disabled" /><label for="rblSlots_4">2 1/2 Hours</label></span></td>
    </tr><tr>
    ...etc...

在我的表单开启对话框中,我创建了一个ajax帖子,从我的webservice中获取一些vaues,其中'timespan'在以下javascipt中,我已将时间跨度设置为静态变量以进行调试,我想启用单选按钮&lt; = timespan。

    var strTS = "30,60,90,120,150,180";
    var aryTS = strTS.split(",");
    var timespan = 120;

    for (i = 0; i <= 5; i++) {

        if ($('#rblSlots [value=' + aryTS[i] + ']').val() <= timespan) {

           $('#rblSlots [value=' + aryTS[i] + ']').removeAttr("disabled");

        }
    }

    $("#appointment-form").dialog("open");
    return false;

2 个答案:

答案 0 :(得分:1)

您可以使用prop方法:

$('#rblSlots input[value=' + timespan + ']').prop('disabled', false)

DEMO

答案 1 :(得分:0)

在IE和Firefox中清除缓存之后,上面的代码确实可以在Firefox中运行,但出于某种原因它不会在IE中。所以我放弃了这种方法,无论如何都让我看起来更美观。

在表格中放弃Radio Button的RadioButtonList 给出唯一的类名和style ='display:none;'到包含Radio的行。 和我的javascript:

    for (i = 0; i <= 5; i++) {
      if (aryTS[i] <= timespan) {
        $(".Slot_" + aryTS[i]).show();
      }
    } 

在IE和Firefox中正常工作