我想在jQuery中编写一个函数,当用户单击复选框时,textfield-2变为enabeled并且必需,textfield-1将被禁用。如果未选中复选框,则禁用textfield-2且不需要textfield-1。
所以就像这两个文本域之间的切换一样。形式是这样的:
<form id="link" name="link" action="post">
<input type="checkbox" name="url_type" id="url_type" >
<input type="text" name="textfield1" id="textfield1">
<input type="text" name="textfield2" id="textfield2" disable="disable">
<input type="submit" name="send" value="send">
</form>
jQuery Code看起来像这样:
<script type="text/javascript">
$('#url_type').on('change',function(){
var checked=$('#url_type').is(':checked');
if(checked==true)
{
$('#textfield1').attr('disabled',true);
$('#textfield2').attr('disabled',false);
} else {
$('#textfield1').attr('disabled',false);
$('#textfield2').attr('disabled',true);
}
});
</script>
我遇到的问题是,当我创建一个新链接时,在cakephp,如果选中该复选框工作正常,但如果我选中复选框,(意味着textfield2变为启用并禁用textfield1)它会生成一个错误,看起来像这样:
请求已被黑洞错误:此服务器上找不到请求的地址。
我不知道冲突的位置或产生错误的原因!
答案 0 :(得分:1)
您可以处理Blackhole issue。
将以下行放在控制器类文件的beforeFilter method
中。
$this->Security->blackHoleCallback = 'blackhole';
现在,在同一个控制器文件中创建一个函数:
public function blackhole($type) {
// handle errors.
}
This post也可以帮助您克服这个问题。
答案 1 :(得分:0)
调整您的表单标记: 1.使用类型:发布 2.在属性操作中键入url,其中应发送表单(/ Controller的名称/操作名称)
<form id="link" name="link" method="post" action="/controller/action">
<input type="checkbox" name="url_type" id="url_type" >
<input type="text" name="textfield1" id="textfield1">
<input type="text" name="textfield2" id="textfield2">
<input type="submit" name="send" value="send">
</form>