string gecheckter Kontrollboxen bauen mit jQuery
Jo
- javascript
Hi,
ich möchte von einer Reihe Checkboxen ermitteln welche aktiviert wurden um die Values dann in einen Kommaseparirten String zu packen (fluppt so auch):
var poiarray = [];
$("input:checkbox[name=poilayer]").each(function() {
if(this.checked){
poiarray.push($(this).val());
}
});
var poistr = poiarray.join(",");
Jetzt frage ich mich ob das mit jQuery Bordmitteln (das ich ja ohnehin verwende) nicht etwas eleganter geht bzw. kürzer.
Hat jemand ne Idee?
Jo
Hallo,
var poiarray = [];
$("input:checkbox[name=poilayer]").each(function() {
if(this.checked){
poiarray.push($(this).val());
}
});
var poistr = poiarray.join(",");
Dein Ansatz ist ja [imperativ](http://de.wikipedia.org/wiki/Imperative_Programmierung), meiner eher [funktional](http://de.wikipedia.org/wiki/Funktionale_Programmierung):
~~~javascript
var a = $("input:checkbox[name=poilayer]");
var poistr = $.map(a, function(o) { if(o.checked) return o.value } ).join(",");
Jeena
@@Jo:
nuqneH
$("input:checkbox[name=poilayer]").each(function() {
if(this.checked){
poiarray.push($(this).val());
}
});
Die Abfrage könnte schon in den Selektor:
$("input:checkbox[name=poilayer]:checked").each(function()
{
poiarray.push($(this).val());
}
Mir scheint eine Gruppe von Checkboxen mit demselben @name ein Missbrauch von HTML zu sein.
Qapla'
Hi,
danke für den Tipp.
Mir scheint eine Gruppe von Checkboxen mit demselben @name ein Missbrauch von HTML zu sein.
Warum? http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name@title=getElementsByName macht doch genau das, sogar in der Objektreferenz.
Jo
Hallo,
Mir scheint eine Gruppe von Checkboxen mit demselben @name ein Missbrauch von HTML zu sein.
Warum? http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name@title=getElementsByName macht doch genau das, sogar in der Objektreferenz.
stimmt, das Beispiel ist auch ungünstig.
Wenn du Formularelemente mit Javascript auswertest, mag das in Ordnung sein. Das ist aber nicht der Regelfall; normalerweise wird man ein Formular an ein serverseitiges Script absenden. Und dann wird von mehreren Checkboxen mit demselben Namen eventuell nur eine erkannt (z.B. wenn die Verarbeitung in PHP erfolgt).
Bei Radiobuttons ist das anders: Hier soll ja aus Prinzip nur eine Auswahloption gültig sein, sie schließen sich gegenseitig aus. Hier ist auch derselbe Name innerhalb einer Gruppe notwendig, damit HTML die Gruppe als solche erkennt und das "mutually exclusive" realisieren kann.
Ciao,
Martin