【问题标题】:disable form submit until (two) checkboxes are checked禁用表单提交,直到(两个)复选框被选中
【发布时间】:2012-01-11 23:00:47
【问题描述】:

我们有一个表单,在提交表单之前,我们有两个复选框。

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

【问题讨论】:

  • ?如果我做的完全错误,我们将不胜感激。它的形式非常大

标签: jquery button


【解决方案1】:

Jesse 有一个很好的解决方案。对于避免重复的稍微更简洁的解决方案(您知道,如果有人发疯并决定添加更多复选框),您可以这样做:

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

【讨论】:

  • 思路不错,比我的优雅多了。
【解决方案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');
         }
    });
 });

我不能保证它是完美的,但我很确定它应该有效 - 如果不是,它肯定会让你走上正确的轨道。

希望这会有所帮助!

编辑:

对于用户的特定按钮:

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

【讨论】:

  • 谢谢 Jesse,我们的提交按钮是 ...
  • 应该很容易改变它以便工作。我会将编辑后的代码放在底部的答案中,很高兴我能提供帮助!
  • 刚刚将代码添加到我的答案中。在这里也使用 JSfiddle:jsfiddle.net/jpollak92/LbxsM。很高兴我能帮忙
猜你喜欢
  • 1970-01-01
  • 2014-07-08
  • 2018-08-15
  • 1970-01-01
  • 2014-02-19
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
相关资源
最近更新 更多