Get undefined javascript-Funktion in Internet Explorer 11
Habe ich einige Fehler beim Aufruf der Funktion im IE 11. In meinem Fall habe ich zwei Skripte in einem <script>
tag.
Dies ist meine Funktion :
<script>
function test()
{
alert("oke");
var currency = $('#curr_drop').val();
var total_room_qty = calculate_amount(currency); //total all room
var btn_class = $('#book_button').prop('class');
var this_qty = $(this).val();
var this_plan_type = $(this).data('plan-type');
var this_plan_id = $(this).data('plan-id');
var this_plan_day = $(this).data('plan-day');
}
function calculate_amount(currency = 'IDR')
{
//alert("ok");
var nights = $('[name="nights"]').val();
var total_amount = 0; var total_room_qty = 0; var total_qty_room_id = 0;
console.log('nights: '+nights);
return total_room_qty;
}
</script>
Nenne ich test
- Funktion von diesem code :
<select name="qty" class="mb10" onchange="test.bind(this)()" data-plan-type="rate" data-plan-id="38" data-plan-day="52459">
<option value="0">0 rooms</option>
<option value="1">1 rooms</option>
<option value="2">2 rooms</option>
<option value="3">3 rooms</option>
<option value="4">4 rooms</option>
<option value="5">5 rooms</option>
</select>
Mein problem ist, wenn ich zu zeigen versucht alert
in top-Funktion test
ich habe undefined function test
aber wenn ich in der Nähe var total_room_qty = calculate_amount(currency); //total all room
der Alarm kann angezeigt werden im IE 11 browser. Wie konnte es passieren und wie kann ich dieses Problem beheben ? Dank
- Ist das script-tag nach der wählen Sie in der Seite?
- Ich habe dieses script in die unteren von meiner Seite vor dem schließen
body
tag - Das problem ist dann, die Reihenfolge ändern und es wird funktionieren
- was meinst du die Reihenfolge ändern ? Können Sie mir erklären ?
- Zunächst das script-tag, dann das select-element. Sorry, ich bin auf meinem Handy, habe keine Zeit zum schreiben die richtige Antwort
- könnten Sie mir einige Beispiel mit
window.test = function () { ... }
? function calculate_amount(currency = 'IDR')
- brechen Internet Exploder an jedem Tag der Woche
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Deklaration der Funktion für calculate_amount ist falsch. Sie versuchen, zu verwenden es6 in ie11.
Leider IE nicht werfen einen Fehler. Das ist der Grund, Ihr event handler nicht erreichbar.
ändern
Beispiel
https://jsfiddle.net/karthick6891/0681reux/
War ich auch mit einem ähnlichen Fehler, und Google hat mich hierher gebracht.
In meinem Fall war es auch ein syntax-Inkompatibilität problem mit älteren Versionen von Internet Explorer: die Verwendung von Pfeil-Funktionen (
=>
) wird nicht unterstützt.Um es zu lösen, siehe Syntax-Fehler im IE mit ES6 Pfeil-Funktionen.
Leider, IE war mir zu sagen, dass die Funktion unterhalb dieser Ausdruck wurde nicht definiert, so es eine Weile dauerte, um herauszufinden, was war der eigentliche Fehler.
Ich hoffe, Sie können dadurch Zeit sparen, um andere mit dem gleichen problem.