如何编写jQuery来禁用从radiobutton列表中选择项目时的下拉列表

时间:2011-12-16 10:11:50

标签: jquery asp.net ajaxcontroltoolkit

我有这个代码,但它不能与asp.net页面一起使用,它有一个母版页和ajax控件工具包(我已经包含了ToolScriptManager)。代码是

<script type="text/javascript">
    jQuery(function() {


        $("#<%=RadioButtonList1.ClientID%>").change(function() {
            var rbvalue = $("input[@name=<%=RadioButtonList1.UniqueID%>]:radio:checked").val();
            if (rbvalue == "No") {
                $("#DropDownList1").attr("disabled", false);
            }
            else if (rbvalue == "Yes") {
                $("#DropDownList1").attr("disabled", true);
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
    $(document).ready(function() {

        $('#RadioButtonList1').change(function() {
            var rbvalue = $('#RadioButtonList1').val();
            if (rbvalue == "No") {
                $('#DropDownList1').attr('disabled', false);
            }
            else if (rbvalue == "Yes") {
                $('#DropDownList1').attr('disabled', true);
            }
        });
    });
</script>

答案 1 :(得分:0)

如果在没有母版页的情况下工作正常,您必须查看可能会发生变化的内容。最简单的答案是它引入了一个javascript错误,导致其余的代码无法执行。我会尝试一些事情:

  1. 在工作时查看此代码的来源。只是为了确认.NET代码正确地替换了RadioButton ID值。
  2. 假设代码相同,请使用母版页(非工作版本)加载页面,然后在FireFox中打开Firebug或Chrome debugger。确保页面加载时没有javascript错误。实际上,这也是确认代码按预期运行的好方法,因为你可以放入javascript断点。
  3. 或者简单的方法 - 在更改功能中添加警告('here!'); (在“var rbvalue = ...”上方)。这将确认它是否正在运行,这将帮助您确定该错误是由该功能未运行还是错误运行引起的。