JQuery - Как удалить "отключить" из всех входов формы при загрузке страницы

Я загружаю страницу со всеми входами и выбирает в форме, начиная с отключения. У меня есть сценарии для "редактирования", которые отлично работают при нажатии кнопки, но я пытаюсь сделать то же самое при загрузке страницы, когда запись "новая". Независимо от того, ПОЧЕМУ имеет смысл, вот код:

<?php  if($_GET['new'] == "yes"){  ?>
<script>
$(document).ready(function(){
    $('#save').removeClass('hidden');
    $('#edit,#addnotes,#addtasks').addClass('hidden');
    var form = $(this).closest('form').find('input').prop('disabled', false);
    var form = $(this).closest('form').find('select').prop('disabled', false);
    form.children('input').removeAttr("disabled");
});
</script>
<?php }  ?>

$('#save').removeClass('hidden'); работает просто отлично, как и следующая строка, но часть формы не работает. Вот что работает при нажатии кнопки "Изменить" на моей странице:

$('#edit').on("click", function(e){
    e.preventDefault();
    var form = $(this).closest('fieldset').find('input').prop('disabled', false);
    var form = $(this).closest('fieldset').find('select').prop('disabled', false);
    form.children('input').removeAttr("disabled");
    $('#save,#cancel').removeClass('hidden');
    $('#edit,#addnotes,#addtasks').addClass('hidden');
});

1 ответ

Решение

В DOM готов, this это не то же самое, что в click событие. Поскольку ваше событие клика привязано к #edit, вы можете (иметь точно такой же) заменить каждый this от '#edit':

$(document).ready(function(){
    $('#save').removeClass('hidden');
    $('#edit,#addnotes,#addtasks').addClass('hidden');
    var form = $('#edit').closest('form').find('input').prop('disabled', false);
    var form = $('#edit').closest('form').find('select').prop('disabled', false);
    form.children('input').removeAttr("disabled");
});
Другие вопросы по тегам