【问题标题】:check server radio button control using jquery使用 jquery 检查服务器单选按钮控件
【发布时间】:2013-05-20 18:55:38
【问题描述】:

我有一个我在其中编写的 .js 文件,

sample.js

function pageLoad(){
  $('.rbNewUnit').attr('checked', true);
}

sample.aspx

 <asp:RadioButton ID="rbNewUnit" runat="server" CssClass="rbNewUnit"  Text="New Unit" GroupName="categotyOfUnit" />

它不工作。

我也试过了,还是不行

 $('.rbNewUnit').is(':checked');

如果我将第一个代码放在 .aspx 页面的脚本标记中,它的工作原理。为什么?

【问题讨论】:

    标签: jquery asp.net radio-button


    【解决方案1】:

    pageLoad 是 Microsoft Asp.net Ajax 的 Sys.Application 中保留的关键字。所有回发都调用该函数,包括异步回发。 $(document).ready 中的函数在异步回发期间不会被调用。有关更多信息,请参阅文档 here 和解释两者之间区别的文章

    $(document).ready and pageLoad

    我已经使用了您的代码并对其进行了一些修改,即使我将 pageLoad 函数放在外部 js 文件中,它也适用于我。

    HTML:

    <script type="text/javascript" src="Js/demo.js"></script>
    
    <ajax:ScriptManager ID="ScriptManager1" runat="server" >
    </ajax:ScriptManager>
    <asp:RadioButton ID="rbNewUnit" runat="server" CssClass="rbNewUnit"  Text="New Unit" GroupName="categotyOfUnit" />
    

    确保您引用的外部 JS 文件正确。

    JS:

    function pageLoad(){
       alert($('[id$=\'rbNewUnit\']').attr('id'));
        $('[id$=\'rbNewUnit\']').attr('checked', 'checked');
       alert($('[id$=\'rbNewUnit\']').attr('checked'));
    }
    

    它会找到 id 以 rbNewUnit 结尾的元素。我一直保持警惕,以便您可以检查问题以防万一您可能想要调试。根据您的要求删除警报并更改代码。

    【讨论】:

      【解决方案2】:
      function pageLoad(){
      $('.rbNewUnit').attr('checked', true);
      }
       window.onload = function(){pageLoad()}
      

      【讨论】:

        【解决方案3】:

        Working jsFiddle Demo

        你必须在你的文档中写好函数体:

        $(function () {
            $('.rbNewUnit').prop('checked', true);
        });
        
        • 在这种情况下最好使用prop 而不是attr(如果您使用的是jQuery 1.6+)。

        参考资料:

        【讨论】:

        • $(function (){}) 等价于 $(document).ready() 好的...但是无论在这个函数内部,它都会在任何回发后停止工作。所以这就是为什么我使用 pageLoad() 事件来忽略这个问题。但我仍然无法使用 prop() 方法检查单选按钮。
        • 你在用Update Panel吗?
        • 是的,我正在使用更新面板。但我不认为这是更新面板的问题.. 因为当我输入代码时 $('.rbNewUnit').attr('checked', true);在 .aspx 页面的脚本标记中它工作正常
        • 这是因为你的更新面板。为什么你想checked你的单选按钮用javascript?为什么不使用ASP.NET 本身?
        • 我有下拉列表,如果我选择 1st 则有 4 个值,然后显示 id 为“1stDiv”的 div。这个 div 有一个必须检查的单选按钮,因为在我的点击事件中我检查了这个单选按钮的 id 我需要在“1stDiv”中存储数据
        【解决方案4】:
        $('#' + '<%=YourRadioButton.ClientID %>').attr('checked', 'checked');
        

        适用于 jQuery 1.6 或更高版本

        $('#' + '<%=YourRadioButton.ClientID %>').prop("checked", true)
        

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2011-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-29
          • 1970-01-01
          • 2016-08-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多