2017-10-15 3 views
0

Ich bin ein Kontrollkästchen mit einem Kippschalter zu schaffen, wie in diesemKippschalter ungehemmt Wert zu übergeben

tutorial gezeigt

Der Schalter in einer Form lebt, wo Fragen dynamisch hinzugefügt werden können. Bei der Einreichung wird das Formular als Array jeder Antwort an die zu bearbeitende Seite gesendet, da der Aus-Schalter keinen Wert an die Form zurückgibt, die Antworten mit den Antworten für die anderen Textfelder nicht synchron sind. Gibt es eine Möglichkeit, einen Wert für den Ausschalter festzulegen, d. H. Wenn ein Kontrollkästchen deaktiviert ist?

Ich habe versucht, das Folgende zu verwenden, um meine Kontrollkästchen deaktiviert zu deaktivieren, aber es scheint nur alle Schalter zu animieren, auf der Form Vorlage, jemand irgendwelche Ideen, was ich falsch mache?

$('form').submit(function(e){ 
    var b = $("input:checkbox:not(:checked)"); 
    $(b).each(function() { 
     $(this).val(0); //Set whatever value you need for 'not checked' 
     $(this).attr("checked", true); 
    }); 
    return true; 
}); 

Antwort

1

Sie wollen wahrscheinlich Javascript verwenden, um einen Wert für jede Checkbox „Schalter“, um in einer von zwei Möglichkeiten:

Option 1: in den HTML-Code der Schaltelemente/Kontrollkästchen, setzen Sie den Wert Attribut standardmäßig auf Null setzen. Fügen Sie dann einen Javascript-Klick-Handler hinzu, um den aktuellen Wert zu überprüfen und zum entgegengesetzten Status/Wert zu wechseln.

Option 2: Fügen Sie Javascript zum Submit-Handler des Formulars hinzu (beim Senden), der nach allen Switch-Elementen sucht, die keine Werte haben, und sie vor der Verarbeitung auf Null setzen.

Jeder Weg sollte zu jeder Zeit einen Wert übergeben, und Ihr Formular sollte in der Lage sein, alle Eingabezustände zu verfolgen.

+0

Großartig, ich glaube, ich werde versuchen, alles zu setzen Wert, der bei der Formularübermittlung nicht auf 0 geprüft wird. Ich habe versucht, dies mit dem Javascript-Code in der Bearbeitung beschrieben, aber dies scheint alle meine Kontrollkästchen deaktiviert zu aktivieren, wenn ich das Formular absende. Nicht ganz sicher, was hier schief läuft, hast du irgendwelche Ideen? – user1419810

0

Dieser Code-Schnipsel hat den Trick, wie Anson schlug dies alle Kontrollkästchen findet und setzt sie entweder an oder aus auf Formular Vorlage:

$('form').submit(function() { 
    $(this).find('input[type="checkbox"]').each(function() { 
     var checkbox = $(this); 
     if(checkbox.is(':checked')) { 
      checkbox.attr('value','1'); 
     } else { 
      checkbox.after().append(checkbox.clone().attr({type:'hidden', value:0})); 
      checkbox.prop('disabled', true); 
     } 
    }) 
});