我对jquery有点新鲜,我在下面写了一个toggle类型的jquery文章。只是想知道什么是更好的方式来写这个,所以它是可重用的。
它的工作原理如下。 基本上单击其中一个无线电量选项(它们具有“nOther”类),然后禁用另一个“数量”文本框。但是点击其他数量的电台并启用文本框。
$("input[type='radio'][name='giftType'][value='Other']").click(function(){
$("input[type='text'][name='otherAmount']").removeAttr('disabled');
});
$("input[type='radio'][name='giftType'][class='nOther']").click(function(){
$("input[type='text'][name='otherAmount']").attr('disabled', 'disabled');
});
显然有一种更好的方式来写这个,所以我可以重复使用它
类似函数('value','class'){ ... }
非常感谢任何帮助。
答案 0 :(得分:3)
使用简单的选择器尝试此操作。
$("input[name='giftType']").click(function(){
$("input[name='otherAmount']").prop('disabled', ($(this).val() != 'Other'));
});
注意:我使用prop
方法启用/禁用文本框,这是设置元素属性的推荐方法。
答案 1 :(得分:1)
怎么样:
$('input[name="giftType"]').click(function(){
$('input[name="otherAmount"]').attr('disabled',($(this).val() != 'Other'))
});
这将检查名为“giftType”的单选按钮组,如果选择了值为“Other”的单选按钮,则禁用名为“otherAmount”的文本框,否则不会禁用。这是一个快速 jsFiddle 来测试。
更新了向后条件检查(== to!=)
答案 2 :(得分:0)
首先要指出几点:
˚F
$(function() {
var otherAmountInputs = $("input[type='text'][name='otherAmount']"); //cache this expensive query
$("input[type='radio']")
.filter("[name='giftType'][value='Other']").click(function(){
otherAmountInputs.removeAttr('disabled');
})
.end()
.filter(".nOther[name='giftType']").click(function(){
otherAmountInputs.attr('disabled', 'disabled');
});
});