我正在加载一个包含所有输入和页面的页面。选择以禁用的形式选择。我有“编辑”脚本,单击按钮时可以完美地工作,但是当记录为“新”时,我正在尝试在页面加载上执行相同的操作。无论WHY是否有意义,这是代码:
<?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');
});
答案 0 :(得分:0)
在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");
});