1

これは以前に尋ねられたことがあることは知っていますが、私のシナリオでは機能していません。 静的な値を持つradiobuttonlistを含むjqueryuiモーダルフォームがあります。

    <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...

フォームオープナーダイアログで、次のjavasciptの「timespan」からいくつかのvauを取得するためにajax投稿を作成します。デバッグ用にtimespanを静的変数に設定しました。<=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;
4

2 に答える 2

1

prop次の方法 を使用できます。

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

デモ

于 2012-07-21T05:34:42.043 に答える
0

IEとFirefoxでキャッシュをクリアした後、上記のコードは実際にFirefoxで機能するようになりましたが、何らかの理由でIEでは機能しませんでした。それで、とにかく私にもっと審美的な外観を与えた方法のために、私はその方法を断念しました。

テーブル内のラジオボタンのRadioButtonListを破棄しました。
一意のクラス名とstyle='display:none;'を指定しました ラジオを含む行に。そして私のJavaScriptは:

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

IEとFirefoxで正常に動作します

于 2012-07-23T01:52:55.903 に答える