【发布时间】:2013-12-25 10:28:19
【问题描述】:
在我的网页中,我有一个 GridView,每个网格视图行都包含一个复选框和一组单选按钮在一列中,如代码所示。如果选中复选框,则单选按钮将启用为 true 以进行选择,如屏幕截图所示。在底部,我们有一个提交按钮来保存选定的详细信息。在按钮保存单击时,我需要验证控件,例如单选按钮的必填字段验证器。
我的问题是 Javascript 来验证客户端的单选按钮选择。
我在 Javascript 下尝试过
<script language="javascript">
function Validate() {
var RB1 = document.getElementById("rdbPlans");
var radio = RB1.getElementsByTagName("input");
var isChecked = false;
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
isChecked = true;
break;
}
}
if (!isChecked) {
alert("Please select an Plan");
}
return isChecked;
}
</script>
//但它不起作用。
和 GridView 的列是
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_OnCheckedChanged"
AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="name">
<HeaderStyle Width="30%" />
</asp:BoundField>
<asp:TemplateField HeaderText="Plans">
<ItemTemplate>
<asp:RadioButtonList ID="rdbPlans" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="rdbPlan_OnSelectedIndexChanged" Enabled="false">
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount" FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox ID="txtAmount" Width="80px" runat="server" Text="0.00" Style="text-align: right"
OnTextChanged="txtAmount_OnTextChanged" AutoPostBack="true" Enabled="false"
CssClass="txtBox" />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtTotalAmount" Width="80px" runat="server" CssClass="txtBox" Text="0.00"
Style="text-align: right;" />
</FooterTemplate>
<HeaderStyle Width="20%" HorizontalAlign="Center" />
</asp:TemplateField>
【问题讨论】:
-
向我们展示您在 javascript/jquery 中尝试了什么?使用您尝试过的 gridview 和脚本的 html 输出创建一个 jsfilddle 或 jsbin。
-
编辑您的问题并使用代码更新它,然后删除您的评论。还创建一个fiddle.net 与您的gridview 的html 输出。
-
不是这个代码。来自浏览器的 gridview 的 HTML 输出。在 chrome 或 IE 中使用开发者工具 (F12) 并使用该代码进行更新。
标签: javascript jquery asp.net gridview