Ich habe ein Formular mit mehreren Kontrollkästchenfeldern und einem entsprechenden Kommentarfeld für jedes Kontrollkästchen. Ich erstelle diese Felder dynamisch. Zum Beispiel würde das Kontrollkästchenfeld tag1Kommentare1 entsprechen. Wenn das Kontrollkästchen aktiviert ist, möchte ich keine Kommentare benötigen. Wenn es nicht markiert ist, möchte ich Kommentare benötigen.Kontrollkästchen Ereignis ändern, um ein anderes Feld auszulösen
Manchmal sind die Felder basierend auf der letzten Eingabe eines Benutzers bereits ausgefüllt. Mit anderen Worten, das Kontrollkästchen ist möglicherweise bereits aktiviert, wenn die Seite geladen wird oder nicht. Ich habe Logik gesetzt, um das entsprechende Kommentarfeld als erforderlichen oder basierend darauf basierend nicht zu erstellen.
Alles Situation scheint außer einem zu arbeiten. Wenn ich das Kästchen ankreuze und dann das Kästchen abnehme, kann ich das Formular ohne Kommentare abgeben. Unten ist was ich versucht habe.
$(document).on('change', 'input[type=checkbox]', function() {
var checkbox = $(this),
otherInput = $('#comments' + this.id.replace('tag', ''));
otherInput.removeProp('required', !checkbox.is(':checked'));
if (!checkbox.not(':checked')){
otherInput.prop('required',true);
}
});
-------------------- zweiten Versuch
$(document).on('change', 'input[type=checkbox]', function() {
var checkbox = $(this),
otherInput = $('#comments' + this.id.replace('tag', ''));
otherInput.prop('required', !checkbox.not(':checked'));
otherInput.removeProp('required', !checkbox.is(':checked'));
});
Beide lösen die gleichen Situationen, mit Ausnahme der oben erwähnt. Bitte beraten.
Was ist der Zweck von 'otherInput.removeProp ('erforderlich',! Checkbox.is (': checked'));' am zweiten Beispiel? – guest271314
@ guest271314 Wenn der Benutzer das Kontrollkästchen aktiviert, wird das erforderliche Attribut aus dem entsprechenden Kommentarfeld entfernt. –
Ja, obwohl die vorherige Zeile 'otherInput.prop ('required',! Checkbox.not (': checked'));' dies erreicht , Ja? Können Sie eine Datei erstellen, um das Problem zu demonstrieren? – guest271314