JQuery.prop( "disabled", false) не включает ввод - программирование
Подтвердить что ты не робот

JQuery.prop( "disabled", false) не включает ввод

У меня возникла проблема с повторным включением ввода после того, как он был отключен при загрузке страницы.

Я использую два входа для приема двух дат, но я хочу, чтобы второй вход не был включен, пока первый не имеет значения.

<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), когда достигается пожар без каких-либо ошибок, но вход остается отключенным. Триггер ('change'), который я использую, является попыткой обновить элемент, но без него существует такая же проблема.

Я пробовал разные варианты .attr из старой версии Jquery, но у меня тоже такая же проблема.

Я использую JQuery 1.9.1, JQuery-mobile 1.3.1 и phonegap 2.7.0

Любая помощь, указывающая мне в правильном направлении, будет оценена.

4b9b3361

Ответ 1

Рабочий пример: http://jsfiddle.net/d9vzs/

Это не то, как вы разрешаете отключать jquery мобильные элементы ввода.

Это можно сделать с помощью следующих функций:

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


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

Официальная документация: http://api.jquerymobile.com/textinput/#method-disable

Ответ 2

Попробуйте с removeAttr как

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

Вы также можете попробовать prop как

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

Ответ 3

Имел ту же проблему некоторое время назад:

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

@Gautam3164 Ответ также хорош.

Ответ 4

Prop используется только для получения значения и установки значения. Обратитесь к этому http://api.jquery.com/prop/

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