2016-02-17 2 views
2

Я хочу проверить, было ли заполнено поле ввода и выбрана одна из моих переключателей. Я пробовал следующее:Как проверить, было ли заполнено поле ввода и выбрана радиокнопка

$('input').keyup(function() { 
    var empty = false; 
    if ($('input[type="text"]').val() == '' && $(!$('input[type="radio"]:checked').val())) { 
     empty = true; 
    } 
    if (empty) { 
     $('button').attr('disabled', 'disabled'); 
    } else { 
     $('button').removeAttr('disabled'); 
    } 
}); 

Но это не работает. он проверяет только поле input. может кто-нибудь сказать мне, что я делаю неправильно?

+2

Вы должны использовать '.prop()', чтобы установить отключенное состояние –

+1

https://jsfiddle.net/arunpjohny/L9hkp37w/1/ –

ответ

2

KeyUp событие не будет срабатывать по радио выберите

$('input').on('keyup change', function() { 
 
    $('button').prop('disabled', $('input[type="text"]').val() == '' || !$('input[type="radio"]').is(':checked')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button disabled>Save</button> 
 
<input type="text" /> 
 
<input type="radio" />

0

Он должен работать

$('input').keyup(function() { 
     var empty = false; 
     if ($('input[type="text"]').val() == '' && $('#radio_button').is(':checked')) { 
      empty = true; 
     } 

     if (empty) { 
      $('button').attr('disabled', 'disabled'); 
     } else { 
      $('button').removeAttr('disabled'); 
     } 
});