Uncaught ReferenceError-Funktion ist nicht definiert

Habe ich eine variable namens als myVar. Sein Wert ändert sich, wenn Sie klicken Sie auf die checkbox. Wenn die checkbox geklickt wird erhalten Sie eine alert-box zeigt seinen Wert als 1. Wenn Sie es deaktivieren, es zeigt wieder eine alert-box mit dem Wert 0. Dies ist korrekt.

Nun habe ich 2 Fragen.

  1. Wenn ich versuche, das Dokument vorzulegen, indem Sie auf Submit dann bekomme ich eine Fehlermeldung wie Uncaught ReferenceError: confirm_submit is not defined. Warum?

  2. Wenn ich das confirm_submit Funktion aus der ready event ich nicht den Fehler dann aber in diesem Fall wird die zweite alert-box, die im inneren confirm_submit Funktion zeigt undefined für myVar. Warum? Ist die myVar nicht erreichbar confirm_submit Funktion?

Code:

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.treeTable.js"></script>
<script type="text/javascript">
var myVar;
jQuery(document).ready(function() {
    $("#myTable2").treeTable({
        expandable: true,
        clickableNodeNames: true,
        initialState: "expanded",
    });
    document.getElementById('myVar').addEventListener('click', myVar, false);

    function myVar() {
        if (document.getElementById('myVar').checked === true) {
            myVar = 1;
        } else {
            myVar = 0;
        }
        alert(myVar);
    }.................
    some functions....................

    function confirm_submit() {
        alert(myVar);
        if (confirm('Press OK to confirm')) {
            document.myform.myVar.value = myVar;
            document.myform.submit();
            reload_parent_and_close_window();
        }
    }
    and some more functions.....................
});
</script>   
</head>
<body>
   <form name="myform" id="myform" action="$action" method="post" onsubmit="return false;">
     <input type="checkbox" name="myVar" id="myVar" value="myVar">Text here
  </form>
  <a href="javascript:confirm_submit()">Submit</a>
</body>
</html>
  • vielleicht sollten Sie es vermeiden, wählen Sie Funktion, Namen, die identisch zu den bestehenden globalen Funktion, wie confirm(): die reichen sollten die Funktion aufrufen oder window.confirm ?
  • Anders ist es in meinem code habe ich umbenannt, weil hier der Datenschutz Gründen.
Schreibe einen Kommentar