我正在写一个.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页面的脚本标签中就可以了。为什么呢?
答案 0 :(得分:2)
pageLoad是Microsoft Asp.net Ajax的Sys.Application中的reaserved关键字。为所有回发调用该函数,包括异步回发。异步回发期间不会调用$(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 结尾的元素。我一直保持警惕,以便您可以查看可能需要调试的问题。根据您的要求删除警报并更改代码。
答案 1 :(得分:0)
您必须在文档中编写函数体:
$(function () {
$('.rbNewUnit').prop('checked', true);
});
prop
而不是attr
(如果您使用的是jQuery 1.6 +)。参考文献:
答案 2 :(得分:0)
$('#' + '<%=YourRadioButton.ClientID %>').attr('checked', 'checked');
对于jQuery 1.6或更高版本使用
$('#' + '<%=YourRadioButton.ClientID %>').prop("checked", true)
希望这可以帮助你
答案 3 :(得分:0)
function pageLoad(){
$('.rbNewUnit').attr('checked', true);
}
window.onload = function(){pageLoad()}