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");
});