2014-12-18 3 views
0

Как я могу сделать кнопку с идентификатором #createEditListCloseBtn отключить, если диалоговое окно с идентификатором #acronyms пуст? Я попытался следующие:как отключить кнопку, если диалоговое окно пуста

if($("#acronyms").children("option:selected").length < 1) 
{ 
    $("#createEditListSaveBtn").addClass("state-btn-disabled") 
           .attr("disabled", "disabled"); 
} 
+0

Вы имеете в виду текстовое поле, когда вы говорите диалоговое окно? – Zack

+0

Я имею в виду ящик со списком, например, список сокращений, например –

+0

Можете ли вы привести пример html, который вы используете для создания этого окна со списком? Какой html-тег вы используете? – Zack

ответ

3

Вы можете использовать это:

$("#submit").prop("disabled", true); 
setInterval(function() { 
    if ($("#username").val().length >= 1 && $("#password").val().length >= 1) { 
     $("#submit").prop("disabled", false); 
    } else { 
     $("#submit").prop("disabled", true); 
    } 
}, 100); 

Он проверяет значения двух полей, если они равны или больше, чем «1», и если да, то это позволяет кнопку отправки.

FIDDLE ЗДЕСЬ: http://jsfiddle.net/nn8s2e8h/

+0

Забыл о опоре! Хорошая работа. – dhershman

+0

Или вы можете заменить содержимое функции на '$ (" # submit "). Prop (" disabled ",! ($ (" # Username "). Val(). Length> = 1 && $ (" # password ") .val(). length> = 1));'. –

+0

@DavidKnipe Я чувствую, что это снижает читаемость. Есть ли причина использовать это вместо того, что уже есть в ответе, кроме как вы можете? – Zack

0

Если проблема заключается в том, что ваша функция работает только один раз при загрузке страницы, то, что вам нужно, это обработчик события:

function updateDisabledStatus() { 
    if($("#acronyms").children("option:selected").length < 1) 
    { 
     $("#createEditListSaveBtn").addClass("state-btn-disabled") 
            .attr("disabled", "disabled"); 
    } else { 
     $("#createEditListSaveBtn").removeClass("state-btn-disabled") 
            .removeAttr("disabled"); 
    } 
} 
updateDisabledStatus(); 
$("#acronyms").on('change', updateDisabledStatus); 

В отличие от ответа капитана Theo, это Безразлично Не теряйте силу обработки данных пользователя, проверяя состояние 10 раз в секунду.

Кстати, вам действительно нужно иметь класс CSS и отключенный атрибут?

Смежные вопросы