为CakePHP创建自定义确认弹出窗口

3

我的工作是编辑预订并根据其进行付款调整。如果预订被延长,则需要向客户收取额外的费用;反之,如果缩短则需要退款。

我尝试了类似于这样的操作(仅使用确认框,没有实际进行POST),但即使点击取消也会提交表单。

<?php echo $this->Form->create('edit',array('onsubmit'=>'return check_dates()')); ?>
//rest of form here

<script>
function check_dates(){
   //make POST request to check previous reservation duration
   if(data.duration == 'longer'){
       confirm('The guest will be charged $X. Click OK to continue');
   }
   if(data.duration == 'shorter'){
       confirm('The guest will be refunded $X. Click OK to continue');
   }
   if(data.duration == 'no_change'){
       confirm('Click OK to continue')
   }
}
</script>

有没有可能做到这样的事情?就像我之前提到的,当我按下取消按钮时,表单仍然被提交了。

1个回答

1

请查看此实时演示:http://jsbin.com/iZididi/2

在check_dates()函数中,您需要设置return。如果您希望表单提交确认的任何答案,只需将最后一行替换为

function check_dates(){
     data = new Object();
  data.duration = 'shorter';

  if(data.duration == 'longer'){
       a = confirm('The guest will be charged $X. Click OK to continue');
   }
   if(data.duration == 'shorter'){
       a = confirm('The guest will be refunded $X. Click OK to continue');
   }
   if(data.duration == 'no_change'){
      a = confirm('Click OK to continue')
   }

  //return a;
  return true;
}

1
谢谢,这正是我想要的。比我预期的简单多了。再次感谢! - user1406951

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接