JavaScript Validation for dynamic checkbox list -
i'm having issues getting validation work. need make sure textbox's populated , @ least 1 checkbox ticked. text fields easy enough, way checkbox's populated making hard. here snippet form looks like, there lot more after this. can change event on checkbox's or remove them?
<form id="orderform" action="#" method="get" onsubmit="return cdsubmitvalidate();"> <section id="selectcd"> <h2>select cds</h2> <div class='item'> <span class='cdtitle'>a biography of rev. absalom dawe</span> <span class='cdyear'>2001</span> <span class='catdesc'>comedy</span> <span class='cdprice'>11.70</span> <span class='chosen'><input type='checkbox' name='cd[]' value='651' title='11.70' onclick='checkboxcheck(this)'/></span> </div> <div class='item'> <span class='cdtitle'>a bronx tale soundtrack</span> <span class='cdyear'>2000</span> <span class='catdesc'>death metal</span> <span class='cdprice'>7.80</span> <span class='chosen'><input type='checkbox' name='cd[]' value='652' title='7.80' onclick='checkboxcheck(this)'/></span> </div> <div class='item'> <span class='cdtitle'>a little deeper</span> <span class='cdyear'>2000</span> <span class='catdesc'>rap/r&b</span> <span class='cdprice'>8.30</span> <span class='chosen'><input type='checkbox' name='cd[]' value='653' title='8.30' onclick='checkboxcheck(this)'/></span> </div> <div id="retcustdetails" class="custdetails"> forename <input type="text" name="forename" id="forename" /> surname <input type="text" name="surname" id="surname" /> </div> <p><input type="submit" name="submit" value="order now!" id="sub1"/></p> tried far no avail.
function cdsubmitvalidate(){ var forename = document.getelementbyid('forename').value; var surname = document.getelementbyid('surname').value; var checkboxticked; function checkboxcheck(elemname){ if (elemname.checked == true) { checkboxticked = true; }else if (elemname.checked == false) { checkboxticked = false; } }; if (!forename || !surname || checkboxticked) { alert("input criteria not met. please review , try again"); return false; } };
i think fix it, first moved checkboxcheck() function out of cdsubmitvalidate() function, checkboxticked. think problem callign function inside fuction console logged:
uncaught referenceerror: checkboxcheck not defined.
also in if statement condition
if (!forename || !surname || checkboxticked) i changed if (!forename || !surname || !checkboxticked)
var checkboxticked; function cdsubmitvalidate() { var forename = document.getelementbyid('forename').value, surname = document.getelementbyid('surname').value; if (!forename || !surname || !checkboxticked) { alert("input criteria not met. please review , try again"); return false; } }; function checkboxcheck(elemname) { if (elemname.checked == true) { checkboxticked = true; } else if (elemname.checked == false) { checkboxticked = false; } }; <form id="orderform" action="#" method="get" onsubmit="return cdsubmitvalidate();"> <section id="selectcd"> <h2>select cds</h2> <div class='item'> <span class='cdtitle'>a biography of rev. absalom dawe</span> <span class='cdyear'>2001</span> <span class='catdesc'>comedy</span> <span class='cdprice'>11.70</span> <span class='chosen'><input type='checkbox' class="chkbx" name='cd[]' value='651' title='11.70' onclick='checkboxcheck(this)'/></span> </div> <div class='item'> <span class='cdtitle'>a bronx tale soundtrack</span> <span class='cdyear'>2000</span> <span class='catdesc'>death metal</span> <span class='cdprice'>7.80</span> <span class='chosen'><input type='checkbox' class="chkbx" name='cd[]' value='652' title='7.80' onclick='checkboxcheck(this)'/></span> </div> <div class='item'> <span class='cdtitle'>a little deeper</span> <span class='cdyear'>2000</span> <span class='catdesc'>rap/r&b</span> <span class='cdprice'>8.30</span> <span class='chosen'><input type='checkbox' class="chkbx" name='cd[]' value='653' title='8.30' onclick='checkboxcheck(this)'/></span> </div> <div id="retcustdetails" class="custdetails"> forename <input type="text" name="forename" id="forename" /> surname <input type="text" name="surname" id="surname" /> </div> <p><input type="submit" name="submit" value="order now!" id="sub1"/></p>
Comments
Post a Comment