【问题标题】:jQuery .prop("disabled", false) is not enabling an inputjQuery .prop("disabled", false) 没有启用输入
【发布时间】:2013-07-04 11:26:11
【问题描述】:

在页面加载时禁用输入后,我在重新启用输入时遇到问题。

我使用两个输入来接受两个日期,但我希望第二个输入在第一个输入有值之前不启用。

<div id="date1" data-role="fieldcontain">
    <label for="date1-start" id="date1-startlbl">Start Date</label>
    <input name="date1-start" id="date1-start" type="date" data-role="datebox"data-options='{"mode": "calbox", "overrideDateFormat": "%Y-%m-%d", "beforeToday": true}' data-theme="a" onchange="showdate()"/>
    <label for="date1-end" id="date1-endlbl">End Date</label>   
    <input name="date1-end" id="date1-end" type="date" data-role="datebox" data-options='{"mode": "calbox", "overrideDateFormat": "%Y-%m-%d", "beforeToday": true}' data-theme="a" onchange="datechart()"/>
</div>

第二个输入在页面加载时被成功禁用。

$("#date1-end").prop("disabled", true);

第一个日期有一个调用以下函数的onchange 事件

function showdate(){
    if ($("#date1-start").val() != null){
        if ($("#date1-end").val() != ""){
            datechart();
        }
        else{
            $("#date1-end").prop("disabled", false);
            $("#date1-end").trigger('change');
        }
    }
}

该函数被调用,prop("disabled", false) 在到达时触发且没有任何错误,但输入仍处于禁用状态。我正在使用的 trigger('change') 尝试刷新元素,但没有它也会存在同样的问题。

我从旧版本的 Jquery 中尝试了 .attr 的不同变体,但我也遇到了同样的问题。

我正在使用 Jquery 1.9.1、Jquery-mobile 1.3.1 和 PhoneGap 2.7.0

【问题讨论】:

标签: javascript jquery html jquery-mobile cordova


【解决方案1】:

前段时间遇到过同样的问题:

$("#date1-end").prop("disabled", null);

@Gautam3164 的回答也不错。

【讨论】:

  • 太不直观了!!不过这行得通 - 谢谢!
【解决方案2】:

试试removeAttrlike

$("#date1-end").removeAttr("disabled");

你也可以试试proplike

$("#date1-end").prop("disabled",false);

【讨论】:

  • 对不起应该用 .attr 详细说明,我也试过这个,但我仍然遇到同样的问题。
  • 这是我最初使用的,但我遇到了同样的问题。我已阅读启用后可能需要刷新元素。这有什么道理吗?
【解决方案3】:

工作示例:http://jsfiddle.net/d9vzs/

这不是您启用禁用 jQUery Mobile 输入元素的方式。

可以用这个函数来完成:

$( "input" ).textinput( "disable" );


$( "input" ).textinput( "enable" );

官方文档:http://api.jquerymobile.com/textinput/#method-disable

【讨论】:

  • 这很好用。应该查看 Jquery 移动文档而不仅仅是 Jquery。谢谢。
  • 你这两个函数有什么区别?
  • @JeffPuckettII 有一个错字,我将第二个函数编辑为“启用”。
【解决方案4】:

Prop 仅用于获取值和设置值。参考这个http://api.jquery.com/prop/

$("#date1-end").prop("disabled", false);

【讨论】:

  • 滚动你提供链接的页面,在下面你会看到该道具也用于设置值。
猜你喜欢
  • 2019-10-31
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
相关资源
最近更新 更多