jquery hide只能工作一次
我有一个区域,最初是隐藏的,应该根据字段的内容出现/消失。jquery hide只能工作一次
因此,如果用户选择通过信用卡付款 - 那么额外的领域打开,如果没有 - 然后他们消失。
问题是,它只能用于显示它们 - 不隐藏。
有人可以请在这里看到:http://bit.ly/dOCNQQ
提前感谢!
$(function(){
$('#CCinfo').hide();
$('#paymethod').change(function(){
var payme = $(this).val();
if (payme=='CreditCard') {
$('#CCinfo').show("slow");
} else {
$('#CCinfo').hide();
}
});
});
<tr>
<td colspan="2" align="right">
<strong>pay by:</strong><br />
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="CreditCard"/>credit card<br />
<tr>
<td colspan="2" align="right"><strong>pay by:</strong><br />
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="CreditCard"/>credit card<br />
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="Check"/>cash<br />
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="At Dinner"/>check
</td>
</tr>
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="Check"/>cash<br />
<input type="radio" name="paymethod" id="paymethod" title="*" class="required" value="At Dinner"/> check
</td>
</tr>
在您的示例中,多个输入具有相同的ID“paymethod”,然后您可以使用它收听change
事件。在HTML中,元素的id属性必须是唯一的,当您调用$("#paymethod")
时,它只能找到具有此id的第一个输入。您应该删除公共ID属性或创建唯一的属性。您应该使用name
属性来定位无线电输入。
因此HTML会是这样的:
<td align="right" colspan="2"><strong>pay by:</strong><br>
<input type="radio" value="CreditCard" class="required" title="*" name="paymethod">credit card<br>
<input type="radio" value="Check" class="required" title="*" name="paymethod">cash<br>
<input type="radio" value="At Dinner" class="required" title="*" name="paymethod"> check
</td>
的JS来获取无线电要素是:
$("input[name='paymethod']").change(function() { ... });
非常好 - 谢谢你们! – kneidels 2011-03-07 23:53:41
所有的单选按钮都有相同的ID。当您选择$('#paymethod').val()
时,您只能得到第一个单选按钮的值。巧合的是,这总是信用卡。
尝试:
$('input[name="paymethod"]').click(function (e) {
if (e.target.value == 'CreditCard') {
$('#CCinfo').show("slow");
} else {
$('#CCinfo').stop().hide();
}
});
我看看你的代码。您不能有多个具有相同ID的输入元素。代码中发生这种情况的原因是,点击处理程序仅适用于ID为paymethod的第一个元素,而不是其他两个元素。只需为所有这些类使用一个通用类,然后将该处理程序绑定到该类。
抱歉,#2是不是平台“按需调试”。您需要提取您认为错误的代码,将其发布到此处,然后有人可以帮助您。通过发布一个链接到一个页面并要求“调试”,你不会向社区贡献任何东西,因为你问的问题不会对除你以外的任何人有任何用处。 – fresskoma 2011-03-07 23:40:40
这很酷,我不介意调试。 – Dimitry 2011-03-07 23:45:22