отключить отправку формы, пока не будут отмечены (два) флажки - PullRequest
3 голосов
/ 12 января 2012

У нас есть форма, и до того, как форма может быть добавлена, у нас есть два флажка.

  1. конфиденциальность
  2. условия.

Что я хочусделать (есть проблемы с проверкой с помощью флажков), чтобы отключить кнопку отправки, пока оба флажка не были проверены.

HTML для них:

<label class="s_radio"><input type="checkbox" class="required" id="terms"/> <a class="s_main_color" href="/terms">Terms</a></label>
<label class="s_radio"><input type="checkbox" class="required" id="privacy"/> <a class="s_main_color" href="/privacy">Privacy Policy</a></label>

JS для проверки для этих(не работает, хотя есть)

if(terms == "") $('#terms').css({"outline-color":"#F12B63"});
if(privacy == "") $('#privacy').css({"outline-color":"#F12B63"});

Ответы [ 2 ]

9 голосов
/ 12 января 2012

У Джесси хорошее решение.Для более краткого решения, которое позволяет избежать дублирования (вы знаете, если кто-то сходит с ума и решает добавить дополнительные флажки), вы можете сделать это:

$(function() {
    $('input.required').click(function() {
        var unchecked = $('input.required:not(:checked)').length;
        if (unchecked == 0) {
            $('#submitBtn').removeAttr('disabled');
        }
        else {
            $('#submitBtn').attr('disabled', 'disabled');
        }
    });
});
2 голосов
/ 12 января 2012

Попробуйте это:

HTML

<label class="s_radio"><input type="checkbox" class="required" id="terms"/> <a class="s_main_color" href="/terms">Terms</a></label>

<label class="s_radio"><input type="checkbox" class="required" id="privacy"/> <a class="s_main_color" href="/privacy">Privacy Policy</a></label>

Javascript

$(document).ready(function(){
 $('input[type="submit"]').attr('disabled','disabled');
 $("#privacy").click( function(){
    if( $(this).is(':checked') && $("#terms").is(':checked') ) {
            $('input[type="submit"]').removeAttr('disabled');
         } else {
            $('input[type="submit"]').attr('disabled','disabled');
         }
    });
 $("#terms").click( function(){
    if( $(this).is(':checked') && $("#privacy").is(':checked') ) {
            $('input[type="submit"]').removeAttr('disabled');
         } else {
            $('input[type="submit"]').attr('disabled','disabled');
         }
    });
 });

Я не могу обещать, что это идеально, но я уверен, что это должно сработать - если нет, это определенно поставит вас на правильный путь.

Надеюсь, это поможет!

EDIT:

Для конкретной кнопки пользователя:

 <button class="s_button_1 s_main_color_bgr" id="buttonsend" name="submit" value="submit" disabled="disabled"><span class="s_text">Create Account</span></button>

$(document).ready(function(){
 $("#privacy").click( function(){
    if( $(this).is(':checked') && $("#terms").is(':checked') ) {
           $('#buttonsend').removeAttr('disabled');
    } else {
        $('#buttonsend').attr('disabled','disabled');
    }
    });
 $("#terms").click( function(){
    if( $(this).is(':checked') && $("#privacy").is(':checked') ) {
          $('#buttonsend').removeAttr('disabled');
       } else {
          $('#buttonsend').attr('disabled','disabled');
     }
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...