2017-07-27 6 views
0

Ich habe ein einfaches Formular mit wenigen verschiedenen Eingabetypen. Grundsätzlich überprüfe ich, ob Text, Textbereich, Datum/Uhrzeit-lokale Werte und alle Radiobuttons überprüft wurden. Das ist der Code ich verwendeÜberprüfen, ob Optionsfeld nicht aktiviert ist jQuery

$("#submit_button").click(function() { 
 

 
    var alarm = 0; 
 

 

 
    $('input[type="text"]').each(function() { 
 
    if ($(this).val() == "") alarm = 1; 
 
    }) 
 

 
    $('textarea').each(function() { 
 
    if ($(this).val() == "") alarm = 1; 
 
    }) 
 

 
    $('input[type="datetime-local"]').each(function() { 
 
    if ($(this).val() == "") alarm = 1; 
 
    }) 
 

 

 
    $('input[type="radio"]').each(function() { 
 
    if (!$(this).is("checked")) alarm = 1; 
 
    }) 
 

 
    if (alarm == 1) { 
 
    $("#failure").show(200); 
 
    $("#failure").fadeOut(1500); 
 
    } else { 
 
    $("#success").show(200); 
 
    $("#success").fadeOut(1500); 
 
    } 
 
});
#success, 
 
#failure { 
 
    display: none;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<label class="reshenie_radio"><input type="radio" class="reshenie_radio" name="reshenie" value="Пройден">1</label> 
 
<label class="reshenie_radio"><input type="radio" class="reshenie_radio" name="reshenie" value="Не пройден">2</label> 
 
<label class="reshenie_radio"><input type="radio" class="reshenie_radio" name="reshenie" value="Продлен">3</label> 
 

 
<textarea rows="10" cols="100" name="recommendations" value=""></textarea> 
 

 
<label style="text-align: center;"><input type="datetime-local" >Date</label> 
 

 
<label><input type="text" class="avg_score" name="avg_score" width="30" height="50" value="">avg.score</label> 
 

 

 
<section id="success"> 
 
    <p>Thanks! Everything is ok!</p> 
 
</section> 
 

 
<section id="failure"> 
 
    <p>Please fill all the fields!</p> 
 
</section> 
 

 
<section id="submit"> 
 
    <input type="submit" name="submit" id="submit_button" value="send!"> 
 
</section>

Dieser Code prüft alle Felder in Ordnung, aber Radiobuttons überprüfen funktioniert nicht.

+0

Ihr Beispiel wenn – Luca

+0

scheint zu funktionieren Du Schleife durch Ihre Radio-Buttons und der Endwert Alarm hinzufügen wird nur durch die letzte Optionsfeld des Staates bestimmt. Außerdem können Sie nicht alle Optionsfelder überprüfen. – j08691

+1

Sollte es nicht '$ (this) .is (": checked ")' 'sein? – NullDev

Antwort

1

Sie können Ihre Radioeingänge wie folgt aus (keine Notwendigkeit für foreach-Schleife) überprüfen:

if(!$('.reshenie_radio').is(':checked')) alarm = 1; 
0

Ihr Problem ist nicht :checked Selektor verwenden in is('checked')

Kann :checked Wähler und length verwenden auch

if(!$('.reshenie_radio:checked').length){ 
    alarm = 1; 
} 

Sie können die anderen alle auch kombinieren mit filter()

var $emptyInputs = $('input[type="text"], textarea, input[type="datetime-local"]').filter(){ 
    return !this.value; 
}); 

if($emptyInputs.length){ 
    alarm = 1; 
} 
0

nicht .each() in diesem Code für Radioeingang fügen Sie


Code Durch die,
Sie die Eingabe tun können einfach so überprüft,
https://jsfiddle.net/saifudazzlings/wa3n19hw/3/


Gerade .each()
entfernen und

if(!$('input[type="radio"]').is(":checked")) 
    { 
    alarm = 1; 
    } 
Verwandte Themen