【问题标题】:How to disable a text area?如何禁用文本区域?
【发布时间】:2011-10-08 03:51:45
【问题描述】:

如何禁用动态添加到 HTML 中的文本区域?

HTML:

<div class="ss_datesel_inp_cont">
    <div class="ss_datesel_inp_right_corner">
    </div>
    <input autocomplete="off">
</div>

这是我尝试过的:

   $('.ss_datesel_inp_cont:textarea').prop("disabled", true);
   $('.ss_datesel_inp_cont:input').prop("disabled", true);

【问题讨论】:

  • 你用的是什么版本的jquery?

标签: jquery textarea


【解决方案1】:

我在您发布的代码中没有看到 textarea 元素?根据您拥有的标记,您可以通过以下方式禁用输入:

$('.ss_datesel_inp_cont input').prop('disabled', true);

您的代码无法正常工作的原因仅仅是因为选择器错误。输入是.ss_datesel_inp_cont 的后代,因此您需要在.ss_datesel_inp_continput 之间用空格表示。输入也是直接子代,因此您也可以使用直接子代令牌&gt;,如$('.ss_datesel_inp_cont &gt; input')

【讨论】:

    【解决方案2】:

    要更改 disabled 属性,您应该使用 .prop() 函数。

    $("textarea").prop('disabled', true);
    $("textarea").prop('disabled', false);
    

    注意:对于 jQuery 1.6+

    【讨论】:

    • 这行得通,但如果这个人知道 ID 选择器,那不是 jquery 操作工作的最快方式吗?例如$("#mytextareaID").prop('disabled', true);
    • @TomStickel 我在一般意义上添加了代码。如果您知道元素 ID,则使用它会更合适、更安全。我认为无论哪种情况,性能都不会受到太大关注。
    【解决方案3】:

    你试过了吗,

    $('.ss_datesel_inp_cont:textarea').attr("disabled", true);
    

    prop 仅适用于 jQuery 1.6 或更高版本。

    【讨论】:

    • 我正在尝试添加一个类只是为了看看它是否有效,但我什至做不到。
    • 可能是jQuery没有初始化,你看控制台看看有没有报错?
    【解决方案4】:

    我会尝试:

    $('.ss_datesel_inp_cont:textarea').prop("disabled", "disabled");
    

    $('.ss_datesel_inp_cont textarea').prop("disabled", "disabled");
    

    【讨论】:

      【解决方案5】:

      你可以这样做:

      $('.ss_datesel_inp_cont input').attr('disabled','disabled');

      您的inputdiv 内,因此您可以像使用css 一样选择它,只需一个空格。

      它是div 的孩子,所以你也可以这样做:

      .ss_datesel_inp_cont &gt; input

      示例: http://jsfiddle.net/UpHsA/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 2012-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多