2016-03-09 2 views
0

J'ai essayé de faire une recherche dans stackoverflow. Il y avait des sujets sur cette question. J'ai essayé plusieurs des correctifs qui étaient proches du mien, mais aucun n'a fonctionné. J'ai aussi essayé de googler le sujet, mais tout ce que j'ai essayé n'a pas fonctionné.javascript confirme ne fonctionne pas en chrome ou IE, mais fonctionne dans Firefox

Toute aide est appréciée.

Voici la situation, cette confirmation javascript fonctionne, la confirmation du dialogue apparaît et est fonctionnelle dans Firefox, mais ne fonctionne pas dans IE ou Chrome, ce qui signifie que la boîte de dialogue de confirmation n'apparaît pas et le code passe à la page suivante comme si elle était confirmée:

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; 
} 

Mais, celui-ci fonctionne dans les trois:

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

il est le même programme PHP, même les navigateurs. Voici le code HTML à celui qui ne fonctionne pas:

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

Voici le code HTML pour celui qui fonctionne:

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

Je devrais avoir noté, d'autres ont testé dans les trois navigateurs sur des machines différentes avec le même résultat de boîte de dialogue non confirmer dans IE ou Chrome, mais en obtenir un dans Firefox. – user3533214

Répondre

0

essayer de mettre avant votre fonction que le code ci-dessous:

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()); 
}; 

Le problème est que Chrome et IE sont manquants fonction toLocaleFormat, selon JavaScript function not working on Chrome & IE but works on FireFox

+0

Merci. Je vais essayer. – user3533214