【问题标题】:disabling all inputs in a particular form禁用特定形式的所有输入
【发布时间】:2012-01-26 04:43:34
【问题描述】:

我可以通过

获取表单 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 中替换变量?

【问题讨论】:

  • 对那些正在阅读这篇文章的人来说只是一个评论,在最新版本的 jQuery 中你应该使用.prop("disabled", true); 而不是.attr("disabled", "disabled")

标签: jquery variables input css-selectors


【解决方案1】:

将 formID 选择器添加到选择器的开头,例如

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

【讨论】:

    【解决方案2】:

    怎么样

    $("#"+form_id + " > :input").attr("disabled", "disabled");
    

    由于性能原因,我通常不提倡使用伪选择器,因此您可以根据需要将其替换为离散的 tagName 列表。

    【讨论】:

      【解决方案3】:

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

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

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

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

      请注意,输入伪选择器不一定只表示标签。请参阅this page 了解更多信息。

      【讨论】:

        【解决方案4】:

        如果我没有正确回答您的问题:试试这个 禁用 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

        【讨论】:

          猜你喜欢
          • 2019-08-29
          • 2021-02-12
          • 2017-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-27
          • 2017-01-15
          • 1970-01-01
          相关资源
          最近更新 更多