单击带有黑洞的复选框,使用jQuery启用/禁用textfield

时间:2014-04-29 09:31:05

标签: jquery cakephp cakephp-2.3

我想在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)它会生成一个错误,看起来像这样:

请求已被黑洞错误:此服务器上找不到请求的地址。

我不知道冲突的位置或产生错误的原因!

2 个答案:

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