markierter checkboxen, text-inhalt von di/input field löschen
Christoph
- javascript
0 Bio0 Axel Richter0 Christoph
hallo erstmal,
ich möchte anhand von markierten checkboxen, den text-inhalt eines divs und den value des input type="text" feldes löschen, evlt. mit (innerHtml = '')
leider fehlt mir hier der ansatz wie ich alle elemente einsammle und dann entsprechend löschen kann.
bsp:
<fom name="formular">
<table cellpadding="1" cellspacing="1" border="0" width="400">
<tr>
<td><input type="checkbox" name="delete"></td>
<td><input type="text" name="text_a" value="Text A"></td>
<td><div id="inhalt_a">Inhalt 1</div></td>
</tr>
<tr>
<td><input type="checkbox" name="delete"></td>
<td><input type="text" name="text_b" value="Text B"></td>
<td><div id="inhalt_b">Inhalt 2</div></td>
</tr>
</table>
<input tpye="button" onClick="delSelectedText()">
</form>
Mein erster Ansatz ist, daß ich mir erstmal alle Elemente einsammle die checked sind, und dann müßte ich definieren können, bei welchen elementen ich den inhalt löschen kann. blos wie?
<script type="text/javascript">
function delSelectedText() {
//alle elemente die checked sind
var el = document.getElementsByName('delete');
for(i = 0;i<el.length;i++)
if(el[i].checked)
alert(el);
}
</script>
Sup!
http://www.w3.org/TR/DOM-Level-2-Core/ecma-script-binding.html
http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/ecma-script-binding.html
Gruesse,
Bio
Hallo,
ich möchte anhand von markierten checkboxen, den text-inhalt eines divs und den value des input type="text" feldes löschen,
bsp:<fom name="formular">
<table cellpadding="1" cellspacing="1" border="0" width="400">
<tr>
<td><input type="checkbox" name="delete"></td>
<td><input type="text" name="text_0" value="Text A"></td>
<td><div id="inhalt_0">Inhalt 1</div></td>
</tr>
<tr>
<td><input type="checkbox" name="delete"></td>
<td><input type="text" name="text_1" value="Text B"></td>
<td><div id="inhalt_1">Inhalt 2</div></td>
</tr>
</table>
<input tpye="button" onClick="delSelectedText()">
</form>Mein erster Ansatz ist, daß ich mir erstmal alle Elemente einsammle die checked sind, und dann müßte ich definieren können, bei welchen elementen ich den inhalt löschen kann. blos wie?
function delSelectedText() {
//alle Elemente im Formular "formular", die den Namen "delete" haben
var el = document.forms["formular"].elements["delete"];
for (i = 0;i<el.length;i++) {
if (el[i].checked) {
document.forms["formular"].elements["text_" + i].value = "";
document.getElementById("inhalt_" + i).style.visibility = "hidden";
}
}
}
Wenn Du die IDs der DIVs und die Namen der Textfelder mit Name_0, Name_1, Name_2 ... bezeichnest, dann kann das i in der Schleife die Verbindung zwischen Checkbox und Textfeld bzw. DIV sein.
Weiterhin würde ich den Inhalt des DIV-Elements nicht löschen, sondern nur unsichtbar machen.
viele Grüße
Axel
» Wenn Du die IDs der DIVs und die Namen der Textfelder mit Name_0, Name_1, Name_2 ... bezeichnest, dann kann das i in der Schleife die Verbindung zwischen Checkbox und Textfeld bzw. DIV sein.
Weiterhin würde ich den Inhalt des DIV-Elements nicht löschen, sondern nur unsichtbar machen.
viele Grüße
Axel
Hallo Axel,
besten Dank erstal für deine schnelle Hilfe.
Leider bekomme ich eine NULL-Fehlermeldung von:
var el = document.forms["formular"].elements["delete"];
Gruß
Christoph
Hallo,
Leider bekomme ich eine NULL-Fehlermeldung von:
var el = document.forms["formular"].elements["delete"];
Ich nicht.
Kontrolliere Deinen Quelltext nochmal. Wenn der im Ausgangsposting der ist, mit dem Du arbeitest, dann hast Du kein Formular, weil
<fom name="formular">
kein Formular erzeugt.
viele Grüße
Axel
<fom name="formular">
kein Formular erzeugt.viele Grüße
Axel
da hast du natürlich recht, hatte ich schon bemerkt, nur dann kommt gar kein fehler und es passsiert nichts.
wenn ich das element mit alert(el); ausgeben, dann bekomm ich auch einen null-fehler....
wenn ich aber es wie folgt schreibe:
var el = document.getElementsByName("delete");
for (i = 0;i<el.length;i++) {
if (el[i].checked) {
document.getElementsByName("tabTitle_" + i).value = "";
document.getElementById("inhalt_" + i).style.visibility = "hidden";
}
}
}
so läuft es zwar, nur fehlt mir hier noch das löschen vom outerHTML des input fields und ab und zu erhalte ich einen laufzeitfehler auf das getElementById....
gruß
christoph
Hallo,
da hast du natürlich recht, hatte ich schon bemerkt, nur dann kommt gar kein fehler und es passsiert nichts.
Bei mir nicht.
wenn ich das element mit alert(el); ausgeben, dann bekomm ich auch einen null-fehler....
?
Dann hast Du einen anderen Code als ich. Den müsste man nochmal sehen, um helfen zu können.
wenn ich aber es wie folgt schreibe:
var el = document.getElementsByName("delete");
Das ergibt ein Array mit allen Elementen des _gesamten_ Dokuments, die den Namen "delete" haben. Das ist langsamer als
var el = document.forms["formular"].elements["delete"];
was ein Array aller Formularelemente mit dem Namen "delete" im Formular mit dem Namen "formular" ergibt.
for (i = 0;i<el.length;i++) {
if (el[i].checked) {
document.getElementsByName("tabTitle_" + i).value = "";
document.getElementById("inhalt_" + i).style.visibility = "hidden";
}
}
}so läuft es zwar, nur fehlt mir hier noch das löschen vom outerHTML des input fields
Bitte? Beschreibe bitte genauer, was Du willst.
und ab und zu erhalte ich einen laufzeitfehler auf das getElementById....
Dann gibt es das Element mit der ID "inhalt_[Nr]" nicht. Du musst die entsprechenden Elemente schon anlegen.
hallo axel,
großes danke an dich.
ich dödel hatte nen proxy eingestellt, der mir meine form-daten verändert hatte.
gruß
christoph und schönes wochenende vorab