0 votes
in SoSci Survey (dt.) by s014016 (360 points)
closed by SoSci Survey

Hallo,

ich hab eine Frage als Lückentext mit 3 Feldern.

Es darf nur eine Eingabe in eines der 3 Felder gemacht werden.
Ich habe mal ein wenig rumprobiert und erst einmal nur so programmiert, dass nur eine Eingabe im ersten Feld abgefragt wird.
Die JS-Programmierung funktioniert zwar, aber nur ein Mal??? Und ich habe keine Ahnung, woran das liegt.
Vielleicht können Sie mir (wieder einmal) weiterhelfen?

Hier der Code:

<script type="text/javascript">
//<!--

    function disableField() {
        var state = document.getElementById("PA09_001").value =! " ";
        if (state == true) {
            document.getElementById("PA09_002").style.visibility = "hidden";
            document.getElementById("PA09_003").style.visibility = "hidden";
        }
       else {
          document.getElementById("PA09_002").style.visibility = "visible";
            document.getElementById("PA09_003").style.visibility = "visible";
}
    };

 //--></script>
closed with the note: Es liegen keine weiteren Informationen zu dem Problem vor, wahrscheinlich wurde es bereits anhand der Kommentare gelöst?
by SoSci Survey (304k points)
Was möchten Sie denn mit dem JavaScript-Code erreichen?
by s014016 (360 points)
Eigentlich, soll das so funktionieren, dass, wenn ich in dem ersten Feld einen Wert eingegeben habe, eine Eingabe in den anderen Feldern nicht mehr möglich ist. Das funktionierte so, dass ich die Eingabe, die ich in Feld 2 gemacht habe, nicht möglich ist. Ich dachte das wäre eine Alternative zu 'disabeld' und folgendem Programmcode:

<script type="text/javascript">
//<!--
  var obj = document.getElementById("PA09_01");
   obj.onchange = function(event){
     if (obj.value=!" "){
        document.getElementById("PA09_02").disabled = 'true';
        document.getElementById("PA09_03").disabled = 'true';
     }else{
        document.getElementById("PA09_02").disabled = '';
        document.getElementById("PA09_03").disabled = '';
     }
   }
   //--></script>

Der funktioniert auch nicht richtig, da hier immer 'true' in das Feld 1 geschrieben wird und der eingegeben Wert wird sozusagen überschrieben. Ich hatte schon versucht ein obj.value=obj.value mit in die erste geschweifte Klammer zu setzen, damit er den Wert behält, aber hat auch nicht funktioniert.
by SoSci Survey (304k points)
> Eigentlich, soll das so funktionieren, dass, wenn ich in dem ersten Feld einen Wert eingegeben habe, eine Eingabe in den anderen Feldern nicht mehr möglich ist.

Dafür müssten Sie Funktion disableField() bei jeder Eingabe in das erste Feld ausrufen, z.B. wie folgt:

document.getElementById("PA09_001").addEventListener("keyup", disableField);

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...