подтверждение javascript не работает в Chrome или IE, но работает в Firefox

Я попытался выполнить поиск в stackoverflow. Были темы по этому вопросу. Я попробовал несколько исправлений, которые были близки к моему, но ни одно из них не сработало. Я также пытался погуглить тему, но все, что я пробовал, не сработало.

Любая помощь приветствуется.

Вот ситуация, это подтверждение javascript работает, что означает, что диалоговое окно подтверждения появляется и работает в Firefox, но не работает в IE или Chrome, что означает, что диалоговое окно подтверждения не появляется, и код переходит на соответствующую следующую страницу, как если бы это было подтвержденный:

function confirmReserve($checkin, $checkout, $nights, $points) { 

    var $in =new Date($checkin*1000);
    var $out =new Date($checkout*1000);
    if (confirm("Your Reservation Details:  \n\nCheck-In Date:  " + $in.toLocaleFormat('%B %d, %Y') + "\nCheck-Out Date:  " + $out.toLocaleFormat('%B %d, %Y')  + "\nTotal Nights:  " + $nights + "\nTotal points:  " + $points + "\n\nClick OK to process reservation.")) {
    return true; 
 }  else {
    return false;
 } 

Но этот работает во всех трех:

function confirmDelete() { 
if (confirm("Click OK to confirm cancellation of your reservation.")) {
    return true; 
 }  else {
    return false;
 } 
} 

Это та же программа PHP, те же браузеры. Вот HTML для того, который не работает:

<form method="post" onsubmit="return confirmReserve('<?php echo $InDate;?>', '<?php echo $OutDate;?>', '<?php echo $totalNights;?>', '<?php echo $totalPoints;?>')" action="reservationConf.php">

Вот HTML для того, который работает:

<form method="post" onsubmit="return confirmDelete()" action="deletereservation.php?ReservationID=' . $Reservation['ReservationID'] . '">

person user3533214    schedule 09.03.2016    source источник
comment
Я должен был отметить, что другие тестировали во всех трех браузерах на разных машинах с тем же результатом: нет диалогового окна подтверждения в IE или Chrome, но появляется одно в Firefox.   -  person user3533214    schedule 09.03.2016


Ответы (1)


попробуйте поставить перед вашей функцией этот код ниже:

    var monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

Date.prototype.toLocaleFormat = Date.prototype.toLocaleFormat ||     
    function(pattern) {
        return pattern.replace(/%Y/g, this.getFullYear())
           .replace(/%m/g, (this.getMonth() + 1))
           .replace(/%B/g, monthNames[this.getMonth()])
           .replace(/%d/g, this.getDate()); 
};

Проблема в том, что в Chrome и IE отсутствует функция toLocaleFormat, согласно Функция JavaScript не работает в Chrome и IE, но работает в FireFox

person AlanShearer    schedule 09.03.2016