2017-07-27 16 views
0

私は、いくつかの異なる入力タイプを持つ単純なフォームを持っています。基本的には、テキスト、テキストエリア、datetime-localにいくつかの値があり、すべてのラジオボタンがチェックされているかどうかをチェックしています。それは、私がこのコードは、罰金、すべてのフィールドをチェックしラジオボタンがチェックされていないかどうかを確認する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>

使用しているコードだが、ラジオボタンが機能していません確認してください。

+0

あなたの例を追加あなたのラジオボタンをループしていると、アラートの最終値は、最後のラジオボタンの状態によって決定されている – Luca

+0

かかわらず動作するようです。また、すべてのラジオボタンをチェックすることはできません。 – j08691

+1

'$(this).is(":checked ")'ではないでしょうか? – NullDev

答えて

1

あなたは、このようなあなたのラジオの入力(foreachループは必要ありません)を確認することができます:あなたの問題はまた:checkedセレクタを使用してlengthできますが、is('checked')

:checkedセレクタを使用していないです

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

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

filter()

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

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


https://jsfiddle.net/saifudazzlings/wa3n19hw/3/

、あなたは、単にこのように、入力チェックを行うことができ、あなたのコードを取ることによって、このコードでラジオ入力用の


.each()を追加しないでください


だけ.each()
を削除し、

if(!$('input[type="radio"]').is(":checked")) 
    { 
    alarm = 1; 
    } 
関連する問題