【发布时间】:2012-10-20 22:04:57
【问题描述】:
简而言之,当 ASP.NET 页面具有<form runat=server> 标记时,它似乎破坏了一些 jQuery 脚本。这是一个例子:
我有一个非常简单的页面,只有一个复选框,如下所示:
<input type="checkbox" id="myCheckbox01" />
以及像这样调用 jQuery 函数:
<script language=javascript>
$(document).ready(function () {
$("[type=checkbox]").iphoneStyle();
});
</script>
请注意,我没有专门引用任何 ID。 jQuery 调用适用于页面中的所有复选框。
这工作正常,jQuery 调用按预期工作。但是……
当我将复选框附在 ASP.NET 表单中时,如下所示:
<form runat="server" id="form1">
<input type="checkbox" id="myCheckbox01" />
</form>
jQuery 调用停止工作,我收到 JavaScript 错误 “对象不支持属性或方法 'iphoneStyle'”。
再次请注意,我没有引用任何特定的 ID,复选框也不是 ASP.NET (runat=server) 控件——它只是一个普通的旧复选框。
我似乎无法找到这个问题。任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试查看选择器是否正常工作?
console.log($("[type=checkbox]")); -
是的,选择器正在工作。不过,我使用不同的方法对此进行了测试。我将呼叫更改为
$("[type=checkbox]").hide();,复选框按预期隐藏。 -
即使您的选择器工作正常,我建议将其更改为
$('[type="checkbox"]').从性能的角度来看,如果您不直接选择 ID,则使用容器会很好。类似$('#form1 input[type="checkbox"]'). -
谢谢,@Johan。我按照您的建议更改了代码。但是,行为仍然相同。
-
您是否检查过 firebug/chrome 开发人员工具中的 net 选项卡并验证 iphoneStyle() 的脚本已正确加载?
标签: javascript jquery asp.net