我已经更新了我的代码,但它仍无法正常工作......
运行我的asp.net网页并点击按钮后,每次都会出现以下错误...
Microsoft JScript运行时错误:抛出异常但未捕获
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="WebUserControl.ascx.vb" Inherits="WebUserControl" %>
<script src="./scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#chkAll').click(
function() {
$("INPUT[type='button']").attr('click', $('#chkAll').is(':click'));
});
});
</script>
<div>
<asp:Panel ID="Panel1" runat="server">
<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<br />
<br />
<br />
<input id="chkAll" type="button" value="button" />
</asp:Panel>
</div>
Microsoft JScript运行时错误:抛出异常但未捕获
答案 0 :(得分:3)
您不需要#&lt;%= chkAll.ClientID%&gt;对于没有runat =“server”的控件 只需使用ID。
答案 1 :(得分:0)
看起来你正试图完成所展示的here。从那个演示:
$(document).ready(function()
{
$("#paradigm_all").click(function()
{
var checked_status = this.checked;
$("input[@name=paradigm]").each(function()
{
this.checked = checked_status;
});
});
});
请注意这与您的代码正在执行的操作之间的主要区别。您正在选择button
类型的输入,并尝试更改名为click
的属性。那......不会奏效。此演示改为按名称选择checkbox
类型的一些输入并设置其checked
状态。此外,它是通过使用checkbox
而不是button
(这似乎是您明确的意图)来实现的。
您可以阅读jQuery选择器here。您可以使用很多选择元素。在演示中,元素具有相同的name
属性,可以这样选择。您应该能够在.NET服务器控件中设置name
属性,以便在客户端代码上轻松使用。如果没有name
属性,您也可以选择Panel
或div
等子元素。您可能需要在其中提供一些名称或ID,以便轻松实现自己。
编辑:根据您的评论,您可以稍微更改一下逻辑。您仍然像以前一样绑定到click事件。但是,您将无法使用元素拥有checked
状态,因为按钮没有。像这样的东西,例如:
$(document).ready(function()
{
$("#paradigm_all").click(function()
{
$(":checkbox").each(function()
{
this.checked = true;
});
});
});
这会修改前一个示例的逻辑(假设您已将目标复选框更改为标记中的按钮)。主要区别是: