jQuery.prop(“disabled”,false)没有启用输入

jQuery .prop("disabled", false) is not enabling an input

本文关键字:启用 输入 false prop disabled jQuery      更新时间:2023-09-26

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

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

<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)会在没有任何错误的情况下激发,但输入仍处于禁用状态。我使用的触发器("更改")是尝试刷新元素,但如果没有它,同样的问题也存在

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

我使用的是Jquery 1.9.1、Jquery mobile 1.3.1和PhoneGap 2.7.0

不久前也遇到了同样的问题:

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

@Gautam3164的回答也很好。

尝试使用类似removeAttr

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

你也可以尝试使用类似的prop

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

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

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

可以使用以下功能完成:

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

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

官方文件:http://api.jquerymobile.com/textinput/#method-禁用

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

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