选中复选框后,我将某些字段设置为禁用。但是当用户提交表单数据并且它无效时,将重新加载页面,其中复选框保持选中状态,但不再禁用字段。我不确定如何解决这个问题?
javascript:
$('#CommentFrequencyOk').on('click', function () {
$('#test').prop('disabled', this.checked);
});
要禁用的字段:
<fieldset id="test">
<?php echo $this->Form->input('frequency_remarks'); ?>
<?php echo $this->Form->input('duration_remarks'); ?>
</fieldset>
复选框:
<div class="checkbox">
<label for="CommentFrequencyOk">
<input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
<input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" /> Frequency
</label>
</div>
答案 0 :(得分:3)
在页面加载上写下以下行,即
// On Page Load
$('#test').prop('disabled', $('#CommentFrequencyOk').is(":checked"));
答案 1 :(得分:0)
请注意,在初始表单填充期间,复选框上的click事件的偶数处理程序禁用了这些字段。但是,由于已启用该复选框,因此从未调用事件处理程序,并且字段仍保持启用状态。
使用PHP渲染页面时,您只需在页面重新加载期间自行禁用该字段。
答案 2 :(得分:0)
尝试在页面加载
中加载脚本<form action="index.php" method="post">
Enter number of days:
<input type="text" name="days">
<input type="submit" name="submit" value="Submit">
</form>
答案 3 :(得分:0)
页面重新加载复选框,如果选中复选框,则禁用div #test。您可以尝试流动代码。
<script>
$(document).ready(function(){
$('#CommentFrequencyOk').on('click', function () {
$('#test').prop('disabled', this.checked);
});
});
</script>
<fieldset id="test" <?php if(@$_GET['data']['Comment']['frequency_ok'] == 1): echo 'disabled'; endif; ?>>
<?php echo $this->Form->input('frequency_remarks'); ?>
<?php echo $this->Form->input('duration_remarks'); ?>
</fieldset>
<div class="checkbox">
<form >
<label for="CommentFrequencyOk">
<input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
<input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" <?php if(@$_GET['data']['Comment']['frequency_ok'] == 1): echo 'checked'; endif; ?> /> Frequency
</label>
<input type="submit" value="Submit"/>
</form>
</div>