2012-06-11 4 views
-1

Я хочу отключить по умолчанию входные данные, и у меня есть флажок, который позволяет их включать; мой код этого маркера:Отключить входы с jquery по умолчанию

function toggleStatus() { 
    if ($('#toggleElement').is(':checked')) { 
    $('#elementsToOperateOn :input').attr('disabled', true); 
    } 
    else { 
    $('#elementsToOperateOn :input').removeAttr('disabled'); 
    } 
} 

и это называется в качестве вклада с onchange="toggleStatus()";, но состояние по умолчанию входов включены, и я не хочу, чтобы добавить отключено = «отключено» для каждого входа, как я могу сделать это с помощью jquery? и как я могу заставить его работать с существующим onchange?

ответ

4
$(function(){ 
    $('#elementsToOperateOn :input').prop('disabled', true); 
}); 

Отключение входов, когда DOM готова.

O.K. После обновления вашего, ответ еще проще, просто вызвать onchange событие:

либо:

toggleStatus(); 

или

$('#toggleElement').change(); 
+0

, если я хочу сделать "if ($ ('# toggleElement'). Is (': checked')) {", чтобы не отмечать, как я это делаю? как я готов набрать чек – Abude

+1

@Abude. См. Мое обновление. – gdoron

+0

Я сделал: if ($ ('# toggleElement'). Change()) { , но не работает, я устанавливаю флажок, который нужно снять, и теперь поля отключены, я хочу, когда я нажму на этот флажок, чтобы включить их, как противоположность моей (вещь: проверенная). спасибо большое за помощь @gdoron – Abude

1

Использование .prop вместо .attr:

$(':input').prop('disabled', true); 
+0

спасибо за быстрый ответ! – Abude

0

Попробуйте это.

$(document).ready(function() { 
    $('input, select').not('#toggleElement').attr('disabled', true); 
}); 
+0

Знаете ли вы, что '.not' делает? – gdoron

+0

Да. Он удаляет флажок из набора jQuery. Если вы отключите каждое поле ввода, вы не можете их удалить, установив флажок. Ну ... если я правильно понял вопрос. –

+0

@johannes спасибо за быстрый ответ! – Abude

0

есть JQuery пройти через каждое поле ввода при запуске и добавить отключенный атрибут

$(document).ready(function(){ 

    $('input').each(function(){ 

     $(this).attr("disabled", "disabled"); 

     }); 
    }); 

для переключения сценария, используйте селектор класса

$('.elementsToOperatOn').each(function(){ 
    $(this).removeAttr('disabled'); 
}); 
+2

Нет необходимости прокручивать только для установки свойств с помощью jQuery. – saluce

+0

Я хотел сказать то же самое, что @saluce, и объяснить, почему, купите, вы можете просто увидеть другие ответы. Извините за ленивость. : – gdoron

+0

спасибо за подсказку ... –

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