当我在add函数中添加Submit函数时,为什么该程序无法工作?

时间:2018-12-30 12:37:02

标签: javascript jquery

它起作用,直到我将add函数添加到click函数中。

如何使其工作,以使得当从check函数中调用add函数时,仅当用户单击Submit按钮时该标志才递增,然后该控件传递回check函数,因此正确的最终值应为3

var flag = 1;
        
if(flag == 1) {
  $('p').html("xxx");
  check();
}

function check() {
  $('#submit').click(function() {
    if($("#text").val()=="") {
      alert("Enter some text");
    } else {
      add();
      flag++;
      alert(flag);
    }
  });
}

function add() {
  $('#submit').click(function() {
    flag++;
    alert("inside add " + flag);
  });
}
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
<div id="myform">
  <p id="title"></p>
  <input type="text" id="text">
  <input type="submit" id="submit">
</div>

1 个答案:

答案 0 :(得分:0)

您需要添加$( document ).ready(function() { ... });

这似乎可以满足您的要求:

    $( document ).ready(function() {
            var flag = 1;

            if(flag == 1) {
                $('p').text("xxx");
                check();
            }

            function check() {
                $('#submit').click(function() {
                    if($("#text").val()=="") {
                        alert("Enter some text");
                    } else {
                        add();
                        flag++;
                        alert(flag);
                    }
                });
            }

            function add() {
                $('#submit').click(function() {
                    flag++;
                    alert("inside add " + flag);
                }
            )};
    });
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
<div id="myform">
  <p id="title"></p>
  <input type="text" id="text">
  <input type="submit" id="submit">
</div>