javascript - If = one class, but has two classes -
i have validation script validates 2 different classes. want add additional class select boxes generate array onmouseover. problem is, select boxes have 2 classes, 1 validation, 1 array, , script doesn't recognize unless has exact name. if using == doesn't work @ all, using = tries validate elements on page, without classes.
i'm wondering how can make efficient without breaking rest of pages using script.
this example of html
<div class="select-styled"> <select id="pm" name="pm" class="selvalidate pmpop" onmouseover="pmpop();"> <option value="foo">foo</option> <option value="">- remove -</option> </select> </div>
here validation script
for (i=0; i<thisform.elements.length; i++) { if (thisform.elements[i].classname = "selvalidate" || thisform.elements[i].classname == "req" || thisform.elements[i].classname == "valfocus") { //do stuff } }
why don't use match()
?
if (thisform.elements[i].classname.match('selvalidate')) { // stuff }
you can't use assignment operator in if
because that...assign. ==
comparison operator. seem want check if 1 css class set element has many..
so match()
work better searches occurrence of string within string, rather comparing 2 string literals see if they're equal.
also, match()
can accept regular expressions, can powerful. :)
edit:
per barney's comment, recommend using regular expression (as mentioned earlier) avoid false matches might have similar class name (e.g. selvalidate , selvalidateoff or that).
if (thisform.elements[i].classname.match(/\bselvalidate\b/)) { // now, stuff }
both good, really. depends on how narrow want search be.
here nice cheat sheet getting started regular expressions in javascript.
Comments
Post a Comment