Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript focusin事件中的警报()继续弹出_Javascript_Jquery_Html - Fatal编程技术网

Javascript focusin事件中的警报()继续弹出

Javascript focusin事件中的警报()继续弹出,javascript,jquery,html,Javascript,Jquery,Html,当我在下面的标记内单击时,在我单击警报()的“确定”按钮后,下面代码中的警报()会一直出现 单击“确定”按钮后,我需要做什么来停止警报?我的代码需要跳出输入标记并执行其他一些操作 .... <input type="text" class="txtInput" value="Test for focusin event" /> .... <input type="button" id="goBtn" value="GO" /> <script> $(".txt

当我在下面的
标记内单击时,在我单击
警报()
的“确定”按钮后,下面代码中的
警报()
会一直出现

单击“确定”按钮后,我需要做什么来停止警报?我的代码需要跳出输入标记并执行其他一些操作

....
<input type="text" class="txtInput" value="Test for focusin event" />
....
<input type="button" id="goBtn" value="GO" />
<script>
$(".txtInput").focusin(function () {
    var t = $(this).val();
    alert(t);
});
<script>
。。。。
....
$(“.txtInput”).focusin(函数(){
var t=$(this.val();
警报(t);
});

如果已经聚焦,则可以使用布尔标志轨迹:

    ....
<input type="text" class="txtInput" value="Test for focusin event" />
....
<input type="button" id="goBtn" value="GO" />
<script>
var focused=false;
$(".txtInput").focusin(function () {
    if(focused) return;
    focused=true;
    var t = $(this).val();
    alert(t);
});
<script>
。。。。
....
var=false;
$(“.txtInput”).focusin(函数(){
如果(聚焦)返回;
专注=正确;
var t=$(this.val();
警报(t);
});
执行后,可以将该值设置回false


或者,您可以解除处理程序的绑定,并在需要时重新绑定。

焦点在
警报()对话框关闭后返回到
输入。如果要确保只发出一次
alert()
,请跟踪:

var alerted = false;

$(".txtInput").focusin(function () {

  if (! alerted) {
    alerted = true;

    var t = $(this).val();

    alert(t);
  }
});
或者只需使用
console.log()
,同时避免出现
alert()
弹出窗口和多个焦点问题

$(".txtInput").focusin(function () {
  var t = $(this).val();
  console.log(t);
});

这是因为当输入聚焦时,警报弹出,然后输入失去焦点。当您关闭警报框时,焦点将返回到它之前的位置(输入),因此输入将获得焦点,警报将弹出

把它扔掉。如果要调试,请使用