Jquery单选按钮启动无限循环?

时间:2017-12-07 09:03:35

标签: javascript jquery ajax

如果我点击其中一个单选按钮,我想从php文件中得到答案,但如果我使用单选按钮,则警报会无限循环播放。为什么?我如何只获得一次警报?

我只使用“普通”按钮尝试它,然后它可以工作: 如果我点击按钮,ajax会响应警报中的值一次。

谢谢

<!doctype html>
<html lang="de">
  <head>
    <title>test</title>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  </head>

  <body>
    <div class="container">
      <br>
      <br>
      <button type="button" class="btn btn-dark" id="go">Go</button>
      <div class="row">
        
        <div class="btn-group"  id="auswahl" data-toggle="buttons">
          <label class="btn btn-outline-primary active">
            <input type="radio"  name="aktionswahl" value="alles" checked autocomplete="off"> Alles
          </label>
          <label class="btn btn-outline-primary">
            <input type="radio"  name="aktionswahl" value="blue" autocomplete="off"> blue
          </label>
          <label class="btn btn-outline-primary">
            <input type="radio"  name="aktionswahl" value="red" autocomplete="off"> red
          </label>
        </div>
      </div>
    </div><!--Container-->

    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"
			  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
			  crossorigin="anonymous">></script>

    <script>


      $(function() {
        $("input[name=aktionswahl]").focus(function () {
          //var auswahl = this.value;
          var sqlwhere = "where aktion=4 and Datum >= '2017-12-05' and Datum < '2017-12-07'";
          ask(sqlwhere);
        });
      });
      
      $(function() {
        $("#go").click(function () {
          var sqlwhere = "where aktion=4 and Datum >= '2017-12-05' and Datum < '2017-12-07'";

          ask(sqlwhere);

        });
      });
      
      function ask(sqlwhere) {
        $.ajax({
            type: 'POST',
            url: 'read_sql.php',
            data: { sqlwhere:sqlwhere }
            }).done(function(data) { alert(data); });
            return false;
      }
    
    </script>

  </body>
</html>

2 个答案:

答案 0 :(得分:0)

当出现alert时,单选按钮将失去焦点。当您关闭alert时,焦点将返回触发alert,导致单选按钮失去焦点,但当您关闭alert时...

使用console.log代替

答案 1 :(得分:0)

试试这个,你的代码是正确的只需要一个改变...... 写返回false;警报后立即。 意思是......功能(数据){警报(数据);返回false; }