谁能帮我验证这个单选按钮列表在asp.net即时通讯使用自定义验证器与客户端脚本。因为某些原因,我不能让它工作
<asp:RadioButtonList ID="radioGender" runat="server"
RepeatDirection="Horizontal">
<asp:ListItem Value="Male" Text="Male" />
<asp:ListItem Value="Female" Text="Female" />
</asp:RadioButtonList>
<asp:CustomValidator ID="valGender" runat="server"
ValidateEmptyText="true"
ClientValidationFunction="validateGender"
Display="Dynamic"
ErrorMessage="Please choose you're gender."
ValidationGroup="UserInfo">*</asp:CustomValidator>
<script language="javascript" type="text/javascript">
function validateGender(source, args) {
var radGender = document.getElementById("<%= radioGender.ClientID %>");
var elements = radGender.getElementsByTagName("input");
var selected = false;
for (var i = 0; i < elements.length; i++) {
if (elements[i].checked == true) {
selected = true;
break;
}
}
if (!selected) {
args.isValid = false;
return args.isValid;
} else {
args.isValid = true;
return args.isvalid;
}
}
</script>更新:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:RadioButtonList ID="radioGender" runat="server" ValidationGroup="UserInfo" Width="130px"
RepeatDirection="Horizontal">
<asp:ListItem Value="Male" Text="Male" />
<asp:ListItem Value="Female" Text="Female" />
<asp:ListItem Value="None" Text="None" Selected="True" style="display:none; width:0px" />
</asp:RadioButtonList>
</td>
<td align="left">
<asp:CustomValidator ID="valGender" runat="server"
ControlToValidate="radioGender"
ClientValidationFunction="validateGender"
ErrorMessage="Please select you're gender." EnableClientScript="true"
ValidationGroup="UserInfo" Display="Dynamic" style="margin-left:-5px">*</asp:CustomValidator>
<script language="javascript" type="text/javascript">
function validateGender(source, args) {
var radGender = document.getElementById("<%= radioGender.ClientID %>");
var elements = radGender.getElementsByTagName("input");
var selected = false;
for (var i = 0; i < elements.length; i++) {
if (elements[i].checked && elements[i].value == "None") {
selected = true;
break;
}
}
if (selected) {
args.IsValid = false;
return false;
} else {
args.IsValid = true;
return true;
}
}
</script>
</td>
</tr>
</table>
<asp:Button ID="btnSubmitProfile" runat="server"
Text="Save" OnClick="btnSubmitProfile_Click" ValidationGroup="UserInfo" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="UserInfo" />发布于 2012-03-02 14:36:36
它应该是这样的:
args.IsValid = false;
&
args.IsValid = true;
将你的"i“大写为"isValid”。
发布于 2012-03-02 15:09:39
这对我来说很有效..
function validateGender(source, args)
{
var MyRadio = document.getElementById("<%=testing.ClientID%>")
var options = MyRadio.getElementsByTagName("input")
var somethingChecked = false;
var s;
for (x = 0; x < options.length; ++x) {
if (options[x].checked) {
somethingChecked = true;
s = options[x].value;
}
}
if (!somethingChecked) {
args.IsValid = false;
}
else {
args.IsValid = true;
alert(s);
}
}您应该在单选按钮列表中添加RepeatLayout="Flow"属性。
https://stackoverflow.com/questions/9528227
复制相似问题