peterS.: Checkboxen überprüfen - mit den Array-Methoden [filter] & [some]

Beitrag lesen

gruss molily, hallo echnaton;

<form name="formular" action="">

<ol>
<li><label><input type="checkbox" name="box[]" value="1" /> 1</label></li>
...
</ol>
<p><input type="submit" value="Überprüfen" /></p>
</form>

  
  
falls man nicht auf eine »box[]«-collection zugreifen kann, hilft vielleicht  
auch die array-methode [filter]. \*eleganter\* pruefen laesst es sich auf alle  
faelle mit der array-methode [some]. molilys loesung kaeme umgeschrieben dann  
etwa so daher:  
  
  
~~~javascript
(function () {  
  
  
  var formInputElements;  
  
  
  var checkForm = (function () {  
  
    var isValid = [link:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/filter#Compatibility@title=Array.filter](formInputElements, (function (elm/*, idx, arr*/) {  
  
      return (elm.type == "checkbox");  
  
      }))[link:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/some#Compatibility@title=.some](function (elm/*, idx, arr*/) {  
  
      return elm.checked;  
    });  
    if (!isValid) {/*  
  
      ... fehlerbehandlung hier ... */  
    }  
    return isValid;  
  });  
  
  
  var initialize = (function () {  
  
    var elmForm = document.forms["formular"];  
  
    formInputElements = elmForm.getElementsByTagName("input");  
  
    if (elmForm.addEventListener) {  
      elmForm.addEventListener("submit", (function () {return checkForm();}), false);  
    } else if (elmForm.attachEvent) {  
      elmForm.attachEvent("onsubmit", (function () {return checkForm();}));  
    }  
    delete elmForm;  
    delete initialize;  
    delete arguments.callee;  
  });  
  
  
  (function () {  
    if (window.addEventListener) {  
      window.addEventListener("load", initialize, false);  
    } else if (window.attachEvent) {  
      window.attachEvent("onload", initialize);  
    }  
    delete arguments.callee;  
  })();  
  
})();

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]