2012-08-07 49 views
0

我有一个小窗体。当所有的单选按钮被选中时,我想启用提交按钮。下面需要启用提交按钮

是我的代码的html

<form action="#" id="form1" method="post"> 
       <ul> 
        <li> 
         <h3>Here’s what I want:<strong class="result1"></strong></h3> 
         <div> 
         <span><input type="radio" value="Cash Back rewards" name="want" id="01" /><label for="01">Cash Back rewards</label></span> 
         <span><input type="radio" value="Travel rewards" name="want" id="02" /><label for="02">Travel rewards</label></span> 
         <span><input type="radio" value="Gas rewards" name="want" id="03" /><label for="03">Gas rewards</label></span> 
         <span><input type="radio" value="Shopping rewards" name="want" id="04" /><label for="04">Shopping rewards</label></span> 
        </div> 
        </li> 

        <li> 
         <h3>Here’s my credit story: <strong class="result2"></strong></h3> 
         <div> 
         <span><input type="radio" value="I’m new to credit" name="story" id="05" /><label for="05">I’m new to credit</label></span> 
          <span><input type="radio" value="I pay my bills on time" name="story" id="06" /><label for="06">I pay my bills on time</label></span> 
         <span><input type="radio" value="I’ve had credit issues in the past" name="07" id="issues" /><label id="07">I’ve had credit issues in the past</label></span> 
         </div> 
        </li> 

        <li> 
         <h3>Here’s what I carry:</h3> 
         <span><input type="radio" value="I have a credit card with a good record" name="carry" id="08" /><label for="08">I have a credit card with a good record</label></span> 
         <span><input type="radio" value="I don’t have a credit card with a good record" name="carry" id="09" /><label for="09">I don’t have a credit card with a good record</label></span> 

        </li> 
       </ul> 
       <input type="submit" value="" name="" class="find" /> 
       </form> 

我在JavaScript的弱,请告诉我。

还有一件事情,如果李不修复它会动态生成,所以我将不得不做。基本上每一个李是一个队列,单选按钮是选项。所以这个问题会被动态生成,它可以是任何没有。它没有修复

回答

0

在你的标记中有4组单选按钮,你可以检查选定的单选按钮的长度是否等于广播组的长度,如果是这样,启用提交按钮,请尝试以下操作:

$(document).on('change', 'input[type=radio]', function(){ 
    if ($('input[type=radio]:checked').length == 4) { 
     $('input[type=submit]').prop('disabled', false) 
    } 
}) 

DEMO

请注意story组中的第三个元素具有不同的名称属性。

<span><input type="radio" value="I’m new to credit" name="story" id="05" /><label for="05">I’m new to credit</label></span> 
<span><input type="radio" value="I pay my bills on time" name="story" id="06" /><label for="06">I pay my bills on time</label></span> 
<span><input type="radio" value="I’ve had credit issues in the past" name="07" id="issues" /><label id="07">I’ve had credit issues in the past</label></span> 
               --------------------------^ 
+0

** **大胆的一两件事,如果李不解决它会动态生成,因此,我将不得不做。 基本上每个李是一个队列和单选按钮是选项。所以这个问题会被动态生成,它可以是任何没有。它没有修复 – 2012-08-07 07:29:45

+0

@VikasSharma抱歉,您应该为此发布另一个问题。但等一下我会更新我的答案。 – undefined 2012-08-07 07:31:11

+0

@VikasSharma你应该委托事件,尝试更新的事件。 – undefined 2012-08-07 07:32:35

1
$(':radio').on('change', function(e) { 
    var len = $(':radio:checked').length; 
    if(len === 3) { 
    $('input[type=submit].find').prop('disabled', false); 
    } 
}); 

DEMO

+0

** bold **如果li没有修复它会动态生成另外一件事,那么我将不得不做的事情 – 2012-08-07 07:25:38

+0

'3'可以用'$('#form1 li')替换'length'如果元素的数量不是固定的。请注意,第二个'li'的最后一个单选按钮与其他的'name'属性没有相同的名称。这个答案假设 - 合理 - 这是错误的。 – 2012-08-07 07:49:20

0

再或者:

$('input[type=radio]').on('change', function(){ 
    if(
     $('input[name=want]').is(':checked') && 
     $('input[name=story]').is(':checked') && 
     $('input[name=carry]').is(':checked') 
    ){ 
     $('input[type=submit]').prop('disabled', false) 
    } 
});