3

これに基づいて予約の編集と支払いの調整を行っています。予約が延長された場合はその分を顧客に請求する必要があり、短縮された場合は返金する必要があります。

私はこのようなことを試しました(実際には何も投稿せず、確認ボックスだけです)が、キャンセルを押してもフォームが送信されました。

<?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>

このようなことは可能ですか?前に述べたように、とにかく送信されたフォームをキャンセルを押すと。

4

1 に答える 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;
}
于 2013-09-04T19:09:01.310 に答える