1

我有一个我写的.js文件,

示例.js

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

示例.aspx

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

它不工作。

我也试过但没有用

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

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

4

4 回答 4

2

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

$(document).ready 和 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结尾的元素。我一直保持警惕,以便您可以检查问题以防万一您可能想要调试。根据您的要求删除警报并更改代码。

于 2013-06-19T08:25:56.943 回答
0

工作 jsFiddle 演示

您必须在文档中准备好函数体:

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

参考:

于 2013-05-25T07:31:22.023 回答
0
$('#' + '<%=YourRadioButton.ClientID %>').attr('checked', 'checked');

对于 jQuery 1.6 或更高版本使用

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

希望这对你有帮助

于 2013-05-25T11:46:03.953 回答
0
function pageLoad(){
$('.rbNewUnit').attr('checked', true);
}
 window.onload = function(){pageLoad()}
于 2013-06-19T05:47:22.057 回答