I have a form in asp.net 3.5 , which has a master page and a child page (content page). The form has several questions, I am using the asp.net checkboxlist for a questions, since multiple options can be selected, if the user selects 'Other' on one of the
selections, then they have to enter data into a textbox field.
I made the following client side javascript to validate this but, the code doesnt seem to check wheter the Other option value is selected, I believe it has to do with the way the html is rendered on the page,,,
Can you please suggest how to do this?
Thanks in advance.
I have a form in asp.net 3.5 , which has a master page and a child page (content page). The form has several questions, I am using the asp.net checkboxlist for a questions, since multiple options can be selected, if the user selects 'Other' on one of the selections, then they have to enter data into a textbox field.
I made the following client side javascript to validate this but, the code doesnt seem to check wheter the Other option value is selected, I believe it has to do with the way the html is rendered on the page,,,
Can you please suggest how to do this?
Thanks in advance.
Rendered Javascript
//Here I am trying to get the text property of the label rendered for the texbox
// and set my validation arguments
<script language='javascript' type='text/javascript'>
function checkOther2(oSrc, args) {
{
var elementRef =
document.getElementById('ctl00_Content_CheckBoxList1');
var checkBoxArray = elementRef.getElementsByTagName('input');
var checkedValues = '';
for (var i = 0; i < checkBoxArray.length; i++) {
var checkBoxRef = checkBoxArray[i];
if (checkBoxRef.checked == true) {
// You can only get the Text property, which
will be in an HTML label element.
var labelArray =
checkBoxRef.parentNode.getElementsByTagName('label');
if (labelArray.length > 0) {
if (checkedValues.length > 0)
checkedValues += ',';
checkedValues += labelArray[0].innerHTML.text;
if (checkedValues == 'Other') {
args.IsValid = !(args.Value == "")
// test
alert("Hello");
}
}
else {
args.IsValid = true;
}
}
}
}
}
// HTML Rendered
<tr>
<td style="height: 20px">
</td>
</tr>
<tr>
<td style="font-weight: 700">
2.- What did you like most about working here?<strong>
Check all that apply
<span id="ctl00_Content_CheckBoxListValidator1"
style="color:Red;display:none;"></span>
</strong><br /> </td>
</tr>
<tr>
<td>
<table id="ctl00_Content_CheckBoxList1"
class="myradioButton" border="0">
<tr>
<td><input id="ctl00_Content_CheckBoxList1_0" type="checkbox"
name="ctl00$Content$CheckBoxList1$0" /><label
for="ctl00_Content_CheckBoxList1_0">Staff</label></td>
</tr><tr>
<td><input id="ctl00_Content_CheckBoxList1_1" type="checkbox"
name="ctl00$Content$CheckBoxList1$1" /><label
for="ctl00_Content_CheckBoxList1_1">Facility</label></td>
</tr><tr>
<td><input id="ctl00_Content_CheckBoxList1_2" type="checkbox"
name="ctl00$Content$CheckBoxList1$2" /><label
for="ctl00_Content_CheckBoxList1_2">Pay</label></td>
</tr><tr>
<td><input id="ctl00_Content_CheckBoxList1_3" type="checkbox"
name="ctl00$Content$CheckBoxList1$3" /><label
for="ctl00_Content_CheckBoxList1_3">Other</label></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
If other, please elaborate:<br />
<input name="ctl00$Content$txt2other"
type="text" id="ctl00_Content_txt2other" class="txtOther" />
<span id="ctl00_Content_CustomValidator3"
style="color:Red;font-weight:700;visibility:hidden;">Please enter a
comment in question #2.</span>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td style="font-weight: 700">
2.- What did you like most about working here?<strong>
Check all that apply
<cc1:CheckBoxListValidator
ID="CheckBoxListValidator1" runat="server"
ControlToValidate="CheckBoxList1" Display="None"
ErrorMessage="Question 2 is
Required"></cc1:CheckBoxListValidator>
</strong><br /> </td>
</tr>
<tr>
<td>
----------- Actual Markup on asp.net form
<asp:CheckBoxList ID="CheckBoxList1"
runat="server" CssClass="myradioButton">
<asp:ListItem Text="Staff"
Value="Staff">Staff</asp:ListItem>
<asp:ListItem Text="Facility"
Value="Facility">Facility</asp:ListItem>
<asp:ListItem Text="Pay"
Value="Pay">Pay</asp:ListItem>
<asp:ListItem Text="Other"
Value="Other">Other</asp:ListItem>
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td>
If other, please elaborate:<br />
<asp:TextBox ID="txt2other" runat="server"
CssClass="txtOther"></asp:TextBox>
<asp:CustomValidator
ID="CustomValidator3" runat="server"
ClientValidationFunction="checkOther2"
ControlToValidate="txt2other"
ErrorMessage="Please enter a comment in
question #2." style="font-weight: 700"
ValidateEmptyText="True"></asp:CustomValidator>
</td>
</tr>
rickog2011
Member
8 Points
32 Posts
how to get a value in a list on a checkboxlist control and use it to validate
Apr 05, 2012 11:42 PM|LINK
I have a form in asp.net 3.5 , which has a master page and a child page (content page). The form has several questions, I am using the asp.net checkboxlist for a questions, since multiple options can be selected, if the user selects 'Other' on one of the selections, then they have to enter data into a textbox field.
I made the following client side javascript to validate this but, the code doesnt seem to check wheter the Other option value is selected, I believe it has to do with the way the html is rendered on the page,,,
Can you please suggest how to do this?
Thanks in advance.
I have a form in asp.net 3.5 , which has a master page and a child page (content page). The form has several questions, I am using the asp.net checkboxlist for a questions, since multiple options can be selected, if the user selects 'Other' on one of the selections, then they have to enter data into a textbox field. I made the following client side javascript to validate this but, the code doesnt seem to check wheter the Other option value is selected, I believe it has to do with the way the html is rendered on the page,,, Can you please suggest how to do this? Thanks in advance. Rendered Javascript //Here I am trying to get the text property of the label rendered for the texbox // and set my validation arguments <script language='javascript' type='text/javascript'> function checkOther2(oSrc, args) { { var elementRef = document.getElementById('ctl00_Content_CheckBoxList1'); var checkBoxArray = elementRef.getElementsByTagName('input'); var checkedValues = ''; for (var i = 0; i < checkBoxArray.length; i++) { var checkBoxRef = checkBoxArray[i]; if (checkBoxRef.checked == true) { // You can only get the Text property, which will be in an HTML label element. var labelArray = checkBoxRef.parentNode.getElementsByTagName('label'); if (labelArray.length > 0) { if (checkedValues.length > 0) checkedValues += ','; checkedValues += labelArray[0].innerHTML.text; if (checkedValues == 'Other') { args.IsValid = !(args.Value == "") // test alert("Hello"); } } else { args.IsValid = true; } } } } } // HTML Rendered <tr> <td style="height: 20px"> </td> </tr> <tr> <td style="font-weight: 700"> 2.- What did you like most about working here?<strong> Check all that apply <span id="ctl00_Content_CheckBoxListValidator1" style="color:Red;display:none;"></span> </strong><br /> </td> </tr> <tr> <td> <table id="ctl00_Content_CheckBoxList1" class="myradioButton" border="0"> <tr> <td><input id="ctl00_Content_CheckBoxList1_0" type="checkbox" name="ctl00$Content$CheckBoxList1$0" /><label for="ctl00_Content_CheckBoxList1_0">Staff</label></td> </tr><tr> <td><input id="ctl00_Content_CheckBoxList1_1" type="checkbox" name="ctl00$Content$CheckBoxList1$1" /><label for="ctl00_Content_CheckBoxList1_1">Facility</label></td> </tr><tr> <td><input id="ctl00_Content_CheckBoxList1_2" type="checkbox" name="ctl00$Content$CheckBoxList1$2" /><label for="ctl00_Content_CheckBoxList1_2">Pay</label></td> </tr><tr> <td><input id="ctl00_Content_CheckBoxList1_3" type="checkbox" name="ctl00$Content$CheckBoxList1$3" /><label for="ctl00_Content_CheckBoxList1_3">Other</label></td> </tr> </table> </td> </tr> <tr> <td> If other, please elaborate:<br /> <input name="ctl00$Content$txt2other" type="text" id="ctl00_Content_txt2other" class="txtOther" /> <span id="ctl00_Content_CustomValidator3" style="color:Red;font-weight:700;visibility:hidden;">Please enter a comment in question #2.</span> </td> </tr> <tr> <td> </td> </tr> <tr> <td style="font-weight: 700"> 2.- What did you like most about working here?<strong> Check all that apply <cc1:CheckBoxListValidator ID="CheckBoxListValidator1" runat="server" ControlToValidate="CheckBoxList1" Display="None" ErrorMessage="Question 2 is Required"></cc1:CheckBoxListValidator> </strong><br /> </td> </tr> <tr> <td> ----------- Actual Markup on asp.net form <asp:CheckBoxList ID="CheckBoxList1" runat="server" CssClass="myradioButton"> <asp:ListItem Text="Staff" Value="Staff">Staff</asp:ListItem> <asp:ListItem Text="Facility" Value="Facility">Facility</asp:ListItem> <asp:ListItem Text="Pay" Value="Pay">Pay</asp:ListItem> <asp:ListItem Text="Other" Value="Other">Other</asp:ListItem> </asp:CheckBoxList> </td> </tr> <tr> <td> If other, please elaborate:<br /> <asp:TextBox ID="txt2other" runat="server" CssClass="txtOther"></asp:TextBox> <asp:CustomValidator ID="CustomValidator3" runat="server" ClientValidationFunction="checkOther2" ControlToValidate="txt2other" ErrorMessage="Please enter a comment in question #2." style="font-weight: 700" ValidateEmptyText="True"></asp:CustomValidator> </td> </tr>javascript validation checkbox checkboxlist
Vipindas
Contributor
5720 Points
858 Posts
Re: how to get a value in a list on a checkboxlist control and use it to validate
Apr 06, 2012 06:55 AM|LINK
CheckboxList validation using jquery
http://weblogs.asp.net/samirgeorge/archive/2009/05/02/checkboxlist-client-side-validation-using-jquery.aspx
http://www.zachhunter.com/2010/06/jquery-validation-with-asp-net/
javascript validation checkbox checkboxlist