2016-06-15 9 views
1

Я пытаюсь сделать простую форму входов радио, где в большинстве 1 может быть выбран:JQuery форма ввода радио

<form id='forma' action='predmeti.php' method='GET'> 
     1:<input type='radio' name='godina' value='1'/> 
     2:<input type='radio' name='godina' value='2'/> 
     3:<input type='radio' name='godina' value='3'/> 
     <input type='button' id='ok' value='Izaberi godinu!'> 
</form> 

Как разрешить отправки формы, только если выбран один и предотвратить представить, если ничего выбран? Форма отправляется нажатием кнопки id = 'ok'.

+0

вы хотите, чтобы он автоматически высылает когда один проверяется? или вам нужно разрешить подачу только в том случае, если один из них проверен? –

+0

@MinaJacob не автоматически, но когда нажата кнопка id = 'ok', и точно один из радиостанций должен быть выбран – someoneb100

ответ

1

Обновлено на основе комментария. Пожалуйста, попробуйте это.

$(document).ready(function() { 
     $('#ok').on('click', function(){ 
     if($("#forma input[type='radio']:checked").length == 1){ 
      $(this).closest("form").submit(); 
     } 
     }); 
    }); 
+0

не по щелчку радиоприемника, а при нажатии кнопки под радиоприемником кнопка с идентификатором = 'ok' – someoneb100

+0

Обновлен ответ на основе комментария. Пожалуйста, проверьте. –

0

добавить обязательный атрибут к одному из переключателей, вот пример
http://codepen.io/mozzi/pen/zBBzxo?editors=1010

<form id='forma' action='predmeti.php' method='GET'> 
     1:<input type='radio' name='godina' value='1' required></input> 
     2:<input type='radio' name='godina' value='2'></input> 
     3:<input type='radio' name='godina' value='3'></input> 
     <input type="submit" value="send"> 
</form> 
+0

Спасибо, но есть ли способ сделать это без обхода радиоприемников и предупреждения? Я уже имею в виду, что должно произойти. – someoneb100

+0

Какой сценарий вы имеете в виду, когда кто-то нажимает кнопку «Отправить» и ничего не проверяется? что должно произойти? –

+0

У меня есть span tha, установленный на 'display: none'; он меняется на 'display: inline' – someoneb100

0

Вы можете предотвратить действие по умолчанию с помощью event.preventDefault(), .is() с параметром :checked представить form, если один из [name=godina] элементы проверены

$("input[type=button]").click(function(e) { 
 
    e.preventDefault(); 
 
    if ($("[name=godina]").is(":checked")) this.parentElement.submit() 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
 
</script> 
 
<form id='forma' action='' method='GET'> 
 
     1:<input type='radio' name='godina' value='1'/> 
 
     2:<input type='radio' name='godina' value='2'/> 
 
     3:<input type='radio' name='godina' value='3'/> 
 
     <input type='button' id='ok' value='Izaberi godinu!'> 
 
</form>

0

проверить это обновленная ссылка http://codepen.io/mozzi/pen/zBBzxo?editors=1010 он должен делать то, что вы хотите

<form id='forma' action='predmeti.php' method='GET'> 
    1:<input type='radio' name='godina' value='1' required></input> 
    2:<input type='radio' name='godina' value='2'></input> 
    3:<input type='radio' name='godina' value='3'></input> 

    <span id="msg" style="display: none">hello world </span> 
    <input type='button' id='ok' value='Izaberi godinu!'> 
</form> 

$('#ok').on('click', function() { 
    if ($('input[type=radio]:checked').length > 0) { 
    $('#msg').css('display', 'none'); 
    } else { 
    $('#msg').css('display', 'inline'); 
    } 

}); 
Смежные вопросы