0

という名前の変数がありますmyVar。チェックボックスをクリックすると値が変わります。チェックボックスをクリックすると、値が 1 の警告ボックスが表示されます。選択を解除すると、値が 0 の警告ボックスが再び表示されます。これは正しいです。

今、私は2つの質問があります。

  1. をクリックしてドキュメントを送信しようとするとSubmit、エラーが発生しUncaught ReferenceError: confirm_submit is not definedます。なんで?

  2. confirm_submit関数を から外しready eventてもエラーは発生しませんが、その場合、confirm_submit 関数内にある 2 番目のアラート ボックスが に対して表示undefinedされmyVarます。なんで?関数myVar内でアクセスできませんか?confirm_submit

コード:

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

3 に答える 3