从验证

时间:2015-09-02 05:27:43

标签: javascript php jquery

选中复选框后,我将某些字段设置为禁用。但是当用户提交表单数据并且它无效时,将重新加载页面,其中复选框保持选中状态,但不再禁用字段。我不确定如何解决这个问题?

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>

4 个答案:

答案 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>