Wert einem Input-Feld hinzufügen / entfernen

sipoh

Erfahrenes Mitglied
Guten Morgen,

durch Drücken diverser Links möchte ich die ID $a in ein Input-Feld einfügen.

Der Link:
Code:
<?php
..
for($a..) {
  $var = '<a id="'.$a.'" href="javascript:setpix('.$a.')" class="pixel" title="'.$a.'">';

JS:
HTML:
<script type="text/javascript">
..
document.getElementById('counters').value = document.getElementById('counters').value + "|" + a;

Das Input-Feld:
HTML:
<input type="submit" id="counters" value="" name="counters" />

Das Hinzuüfgen klappt. Je nach klicken der Links kann value so aussehen:
12|113|1|678

Das Problem:
Beim nochmaligen Klicken soll der entsprechende Wert wieder verschwinden. Das kriege ich nicht hin.
 
Hi,

du könntest den Ausgabestring mit Hilfe eines regulären Ausdrucks prüfen (siehe SelfHTML).

Ein Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
window.onload = function(){
  // Links erstellen
  var objCont = document.getElementById("outID");
  for(var i=0; i<20; i++){
    var objLnk = document.createElement("a");
    objLnk.id = "id_" + i;
    objLnk.href = "#";
    objLnk.innerHTML = "Link " + i;
    objLnk.onclick = function(){
      setPix(this);
      return false;
    }
    objCont.appendChild(objLnk);
    objCont.appendChild(document.createElement("br"));
  }
}

function setPix(objLnk){
  // Regulären Ausdruck erstellen, der die unterschiedlichen Möglichkeiten abdeckt
  var objRegExp = new RegExp("^"+objLnk.id+"$|^"+objLnk.id+"\\||\\|"+objLnk.id+"\\||\\|"+objLnk.id+"$");

  // Falls die ID noch nicht vorkommt -> eintragen
  if(document.getElementById("counters").value.search(objRegExp) == -1)
    document.getElementById("counters").value += (document.getElementById("counters").value=="")? (objLnk.id) : ("|"+(objLnk.id));
}
 //-->
</script>
</head>
<body>
<div id="outID"></div>
<input type="text" id="counters" value="" name="counters" />
</body>
</html>

Ciao
Quaese
 
Zurück