0

嗨,我有一个下拉菜单

       <div class="dvPortOmmisionRightInner">
        <div style="float: left">
             <select id="ddlAction" onchange="showSelected(this.value)">
                <option value="-1" selected="selected"> </option>
                <option value="1">Indirect Call</option>
                <option value="2">Cargo Diversion</option>
                <option value="3">Cargo Rollover</option>
                <option value="4">Shift Cargo</option>
            </select>
        </div>
    </div>

    <div class="dvOmmisionPortinner">

       <p>Service</p>
        <span class="ShowSpan1" style="float: left">
            <asp:DropDownList ID="ddlService" runat="server" ClientIDMode="Static" CssClass="ddlService"></asp:DropDownList>
        </span>

        <p>Voy</p>
        <span style="float: left" class="ShowSpan2">
            <select id="ddlVoy" name="ddlVoy" class="ddlVoy"></select>
        </span>

在这里,基于选择的选择,我必须禁用一些下拉菜单...,

首先,当我点击 Indirect Call 时,我的 ddlService 下拉菜单必须被禁用..

    var myDivs = new Array(1, 2, 3, 4);

    function showSelected(sapna) {
        var t = 'ShowSpan' + sapna,
            r, dv;
        r = 'ShowSpan' + myDivs;

        dv = document.getElementById(r);
        if (dv) {
            if (t === r) {
                        // Here my ddlService must get Disabled...


           }
          } else {
                dv.style.display = 'none';
            }
        }
        return false;
    }

有没有其他方法可以根据选择值禁用下拉菜单???

当我试图禁用此 dropdon 时,它不会被禁用。

我的试炼就像

    $("#ddlService").attr("disabled", true);
    $("#ddlService").attr("disabled", "disabled");
    $(".ShowSpan1").attr('readonly', true);
    $(".ShowSpan1").attr("disabled", "disabled");

当我禁用我的 SPAN 时,它进入 Readonly 但我仍然可以访问 Dropdown 有没有其他方法可以禁用下拉菜单?

提前致谢

4

3 回答 3

2

用于ClientIDMode="Static"下拉控件。它不起作用,因为当页面被渲染时,服务器端控件ids会动态更改并且机器之间会有所不同。

于 2013-04-26T04:13:18.107 回答
1
 $(".ddlService").prop("disabled", true);

我也对我的答案及其工作进行了测试

设计器页面 html 如下

 <span class="ShowSpan1" style="float: left">
            <asp:DropDownList ID="ddl" runat="server" CssClass="ddlservice">
                <asp:ListItem Text="1" Value="1"></asp:ListItem>
                <asp:ListItem Text="2" Value="2"></asp:ListItem>
                <asp:ListItem Text="3" Value="3"></asp:ListItem>
                <asp:ListItem Text="4" Value="4"></asp:ListItem>
            </asp:DropDownList>
        </span>

和用于禁用该下拉列表的 Jquery 代码如下。

 <script type="text/javascript">

        $('document').ready(function() {

            $(".ddlservice").prop("disabled", true);
            return false;


        });
  </script>

作为 OP 编辑​​的问题,现在在上面选定的下拉列表的值上有禁用下拉列表,所以我编辑的答案如下:

<div class="dvPortOmmisionRightInner">
        <div style="float: left">
             <select id="ddlAction">
                <option value="-1" selected="selected"> </option>
                <option value="1">Indirect Call</option>
                <option value="2">Cargo Diversion</option>
                <option value="3">Cargo Rollover</option>
                <option value="4">Shift Cargo</option>
            </select>
        </div>
    </div>

    <div class="dvOmmisionPortinner">

       <p>Service</p>
        <span class="ShowSpan1" style="float: left">
              <select id="ddlService" name="ddlService" class="ddlService">
                <option value="1">Service</option>

              </select>
        </span>

        <p>Voy</p>
        <span style="float: left" class="ShowSpan2">
            <select id="ddlVoy" name="ddlVoy" class="ddlVoy">
                <option value="1">Voy</option>
            </select>
        </span>

和jquery为此

$('documnent').ready(function(){
    $('#ddlAction').change(function(){
        var action=$("#ddlAction option:selected").val();
        alert(action);
        if(action==1)
        {
            $('#ddlService').prop('disabled','true');
        }
        else if (action==2)
        {
            $('#ddlVoy').prop('disabled','true');
        }

    });
});

JS 小提琴链接

于 2013-04-26T04:08:22.447 回答
0
$('span.ShowSpan1').find('*').attr('disabled',true);

试试这个,它会禁用你跨度中的所有元素

于 2013-04-26T04:17:57.797 回答