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

时间:2013-07-04 11:26:12

标签: javascript jquery html jquery-mobile cordova

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

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

<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

任何帮助我指向正确方向的人都将不胜感激。

4 个答案:

答案 0 :(得分:12)

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

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

@ Gautam3164的答案也很好。

答案 1 :(得分:8)

尝试removeAttr喜欢

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

您也可以尝试使用prop

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

答案 2 :(得分:7)

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

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

可以使用以下功能完成:

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


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

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

答案 3 :(得分:-3)

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

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