下面是我的代码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中很弱,请告诉我。
如果li没有修复它将会动态生成,所以我将不得不这样做。基本上每个li都是一个排队,单选按钮是选项。所以问题将是动态生成它可以是任何不。它没有修复
答案 0 :(得分:3)
这样的事情可以解决问题:
$('#form1 :radio').click(function() {
var disabled = $('#form1 li').filter(function() { return $(':radio:checked', this).length == 0; }).length > 0;
$('#form1 .find').prop('disabled', disabled);
});
这假设您的提交按钮在页面加载时被禁用,因为禁用状态仅在选中选项时更改。你当然可以在DOMReady期间进行相同的检查(在这种情况下我会提取监听器功能),但我更喜欢在加载过程中手动设置标记。
通过选择表单中的所有disabled
元素来设置li
变量,将其缩小为仅符合过滤条件“不包含已检查的radiobuttons”的元素,并检查简化集合中是否有任何元素。
如果您使用的是小于1.6的jQuery版本,请使用.attr
代替.prop
来设置禁用状态。