禁用特定形式的所有输入

时间:2011-12-22 14:55:24

标签: jquery variables input css-selectors

我可以使用

获取表单ID
form_id= $(this).parents('form').attr('id');

我可以用

禁用/启用所有输入
if ($('.basket :input').is(':disabled') == true) {
$('.basket :input').removeAttr('disabled');
$(".basket :input").removeClass('disabled');
 $(':radio:not(:checked)').each(function(){
        $(this).removeClass('hidden').next('label').removeClass('hidden');

});

} else {
$(".basket :input").attr("disabled", "disabled");
$(".basket :input").addClass('disabled');
$(':radio:not(:checked)').each(function(){
$(this).addClass('hidden').next('label').addClass('hidden');
});

我要做的是仅禁用form_id下的输入元素。我想也许是因为我不知道如何在Jquery中替换变量?

4 个答案:

答案 0 :(得分:2)

将表单ID选择器添加到选择器的开头,例如

$('#' + form_id + ' .basket :input')

答案 1 :(得分:0)

怎么样?
$("#"+form_id + " > :input").attr("disabled", "disabled");

由于性能的原因,我通常不会主张使用伪选择器,所以你可以根据需要用离散的tagName列表替换它。

答案 2 :(得分:0)

禁用ID为“form_id”的容器内的所有“输入”:

$('#form_id').find(':input').attr('disabled', 'disabled');

使用id“form_id”启用容器内的所有“输入”:

$('#form_id').find(':input').removeAttr('disabled');

请注意,输入的psuedoselector并不一定只表示标记。有关详细信息,请参阅this page

答案 3 :(得分:0)

如果我正确地提出您的问题:试试这个 要禁用form_id中的所有输入字段:

$('#form_id  input').attr('disabled' , 'disabled');

启用所有元素:

$('#form_id input').removeAttr('disabled');

如果你想学习如何从jquery获取元素以及jquery如何工作:请阅读这篇文章: http://learningtechstuff.wordpress.com/2011/11/23/jquery-learning-series-for-beginners