Javascript UnlockField不在CakePHP中工作
只是想做一个标准的用户编辑页面。“密码”和“重新密码”开始隐藏,但可以通过单击“编辑密码”按钮“打开” 但是-我一直从安全组件得到“auth”黑洞错误 根据,我尝试在视图中使用此选项解锁字段(在字段之前、字段之后、表单内部、表单之前和表单末尾尝试:Javascript UnlockField不在CakePHP中工作,javascript,forms,security,cakephp,cakephp-2.4,Javascript,Forms,Security,Cakephp,Cakephp 2.4,只是想做一个标准的用户编辑页面。“密码”和“重新密码”开始隐藏,但可以通过单击“编辑密码”按钮“打开” 但是-我一直从安全组件得到“auth”黑洞错误 根据,我尝试在视图中使用此选项解锁字段(在字段之前、字段之后、表单内部、表单之前和表单末尾尝试: $this->Form->unlockField('User.password'); $this->Form->unlockField('User.re-password'); 但是-没有帮助。我能让它工作的唯一方法是完全解
$this->Form->unlockField('User.password');
$this->Form->unlockField('User.re-password');
但是-没有帮助。我能让它工作的唯一方法是完全解锁整个动作(似乎不理想):
如果我不禁用这些字段,它就会工作,但我需要禁用它们,因为如果我不禁用,内置的“notEmpty”特性在查找这些字段时会导致javascript错误
查看/HTML:
<div id="edit-password-area" style="display:none;">
<div class="form-group">
<label>Password</label>
<?php echo $this->Form->input('User.password', array('class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?>
<p class="note">Must be at least 8 characters in length.</p>
</div>
<div class="form-group">
<label>Verify Password</label>
<?php echo $this->Form->input('User.re_password', array('type'=>'password', 'class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?>
<p class="note">Must exactly match the "Password".</p>
</div>
</div>
<div id="edit-password-button-area">
<a href="javascript:showPasswordArea();">Edit Password</a>
</div>
<div id="dont-edit-password-button-area" style="display:none;">
<a href="javascript:hidePasswordArea();">Don't Edit Password</a>
</div>
<script>
function showPasswordArea() {
$('#edit-password-area').show();
$('#edit-password-area input').removeAttr('disabled');
$('#dont-edit-password-button-area').show();
$('#edit-password-button-area').hide();
$('#UserPassword').focus();
}
function hidePasswordArea() {
$('#edit-password-area').hide();
$('#edit-password-area input').prop('disabled', 'disabled');
$('#dont-edit-password-button-area').hide();
$('#edit-password-button-area').show();
}
</script>
密码
长度必须至少为8个字符
验证密码
必须与“密码”完全匹配
Javascript:
<div id="edit-password-area" style="display:none;">
<div class="form-group">
<label>Password</label>
<?php echo $this->Form->input('User.password', array('class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?>
<p class="note">Must be at least 8 characters in length.</p>
</div>
<div class="form-group">
<label>Verify Password</label>
<?php echo $this->Form->input('User.re_password', array('type'=>'password', 'class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?>
<p class="note">Must exactly match the "Password".</p>
</div>
</div>
<div id="edit-password-button-area">
<a href="javascript:showPasswordArea();">Edit Password</a>
</div>
<div id="dont-edit-password-button-area" style="display:none;">
<a href="javascript:hidePasswordArea();">Don't Edit Password</a>
</div>
<script>
function showPasswordArea() {
$('#edit-password-area').show();
$('#edit-password-area input').removeAttr('disabled');
$('#dont-edit-password-button-area').show();
$('#edit-password-button-area').hide();
$('#UserPassword').focus();
}
function hidePasswordArea() {
$('#edit-password-area').hide();
$('#edit-password-area input').prop('disabled', 'disabled');
$('#dont-edit-password-button-area').hide();
$('#edit-password-button-area').show();
}
</script>
函数showPasswordArea(){
$(“#编辑密码区域”).show();
$(“#编辑密码区域输入”).removeAttr('disabled');
$(“#不编辑密码按钮区域”).show();
$(“#编辑密码按钮区域”).hide();
$('#UserPassword').focus();
}
函数hidePasswordArea(){
$(“#编辑密码区域”).hide();
$(“#编辑密码区域输入”).prop('disabled','disabled');
$(“#不编辑密码按钮区域”).hide();
$(“#编辑密码按钮区域”).show();
}
尝试以下语法:
$this->Security->unlockedFields = array('yourfield');
你在哪里有机会解决这个问题?