2012-01-11 16 views
3

フォームがあり、フォームが壊れてしまう前に2つのチェックボックスがあります。(2つの)チェックボックスがチェックされるまで、フォーム提出を無効にする

  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"}); 
+0

?私がそれをやっているならば、間違った助けは常に高く評価されます。その非常に大きなフォーム – 422

答えて

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> 

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'); 
    } 
    }); 
    }); 
+0

おかげさまで、私たちの送信ボタンは... 422

+0

それが動作するようにかなり簡単に変更する必要があります。編集したコードを私の答えの一番下に置きます。私が手伝ってくれてうれしいです! –

+0

私の答えにコードを追加しました。ここでもJSfiddleで作業しています:http://jsfiddle.net/jpollak92/LbxsM/。私が助けることができてうれしい –

9

ジェシーは良い解決策を持っています。重複を避けるもう少し簡潔な解決策を考えてみましょう(誰かが夢中になり、さらにチェックボックスを追加することを決めた場合)、次のようにしてください:

$(function() { 
    $('input.required').click(function() { 
     var unchecked = $('input.required:not(:checked)').length; 
     if (unchecked == 0) { 
      $('#submitBtn').removeAttr('disabled'); 
     } 
     else { 
      $('#submitBtn').attr('disabled', 'disabled'); 
     } 
    }); 
}); 
+0

良い考え方、私のよりもエレガントな方法。 –

関連する問題