【问题标题】:Yii2: how to make a <div> disabled/readonly with jQueryYii2:如何使用 jQuery 使 <div> 禁用/只读
【发布时间】:2018-11-22 01:53:04
【问题描述】:

我需要在Yii2框架下禁用或只读yii2-date-picker-widget的图标。

datepicker 小部件有两部分:&lt;span&gt; 用于图标,&lt;input&gt; 用于日期。我可以使用 jQuery 禁用&lt;input&gt;,但我不能禁用&lt;span&gt;

这是 jQuery 代码:

$("#movements-vencimiento").prop("disabled", true); // Works.
$("#vencimientoDiv").prop("disabled", true) // Not works.

这是 Yii2 代码:

<div class="col col-md-4" id="vencimientoDiv">
    <?= $form->field($model, 'vencimiento')->widget(\common\widgets\DatePicker::className(), [
        'convertFormat' => true,
        'pluginOptions' => [
            'format' => 'dd/mm/yyyy',
            'autoclose' => true,
            'language' => 'es-AR',
            'todayHighlight' => 'true',
        ]
    ]) ?>
</div>

这是 HTML 生成的代码:

<div id="vencimientoDiv">
    <div class="form-group field-movements-vencimiento">
        <label class="control-label" for="movements-vencimiento">Vencimiento</label>
        <div class="input-group date">
            <span class="input-group-addon">
                <i class="fa fa-calendar"></i>
            </span>
            <input type="text" id="movements-vencimiento" class="form-control" name="Movements[vencimiento]" disabled="">
        </div>
        <div class="help-block"></div>
    </div>
</div>

【问题讨论】:

    标签: jquery yii2 disabled-input readonly-attribute


    【解决方案1】:

    div 没有disabled 属性。相反,您可以做的是删除导致日历显示的事件处理程序,如下所示:

    $("#vencimientoDiv *").off();
    

    就这么简单。

    【讨论】:

      【解决方案2】:

      您正在寻找的是适用于所有元素的pointerEvents,您可以在需要时禁用和启用点击返回。

      请看下面的简单演示

      $("#clicker").on('click', function(e) {
        e.preventDefault();
        alert("clicked");
      });
      
      $("#disab").on('click', function() {
        $("#clicker").css({
          pointerEvents: 'none'
        });
      })
      
      $("#enab").on('click', function() {
        $("#clicker").css({
          pointerEvents: 'auto'
        });
      })
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <a href="#." id="clicker">click me</a>
      
      <input type="button" value="Disable Click" id="disab">
      <input type="button" value="enable Click" id="enab">

      因此,在您的情况下,您将编写以下内容以禁用

      $("#vencimientoDiv").css({pointerEvents:'none'});
      

      然后用

      重新启用
      $("#vencimientoDiv").css({pointerEvents:'auto'});
      

      【讨论】:

        猜你喜欢
        • 2019-10-19
        • 2013-04-08
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        • 2016-05-04
        • 1970-01-01
        • 2019-03-07
        • 1970-01-01
        相关资源
        最近更新 更多