gpt4 book ai didi

javascript - 按钮需要点击两次才能触发功能

转载 作者:行者123 更新时间:2023-12-04 01:56:36 38 4
gpt4 key购买 nike

我知道这很难理解,但请试一试。看看截图吧。

小输入框的名字是murl

add() 用于提交表单。如果 murl 为空,则必须直接提交表单,如果它不为空,则必须根据数据库检查 murl 条目(如果存在)。如果不存在,则调用 add()

问题是按钮必须点击两次才能触发该功能。

按钮上的代码是:

<button type="button" value="My button value" onclick="javascript: niju();" name="microsubmit" id="microsubmit">button</button> 

该按钮调用的 JavaScript 是:

function niju()
{
var flag=1;
var micro=document.getElementById('murl').value;

$('#microsubmit').click(function()
{

if(micro=="")
{
add();
}
else
{
//remove all the class add the messagebox classes and start fading
$("#msgbox")
.removeClass()
.addClass('messagebox')
.text('Checking...')
.fadeIn("slow");

//check the username exists or not from ajax
$.post("<?php echo SITE_ROOT;?>inc/user_availability.php",
{ murl: $("input:murl").val() },
function(data)
{
if(data=='no') //if username not avaiable
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this)
.html('This User name Already exists')
.addClass('messageboxerror')
.fadeTo(900,1);

flag=0;
});
}
else
{
$("#msgbox")
//start fading the messagebox
.fadeTo(200,0.1,function()
{
//add message and change the class of the box and start fading
$(this)
.html('Username available to register')
.addClass('messageboxok')
.fadeTo(900,1);

flag=1;
add();
});
}
});
}
});

if(micro=="" && flag==1)
{
add();
}
}

截图:

screenshot

最佳答案

它必须被点击两次,因为您在函数内部定义了 #microsubmitclick 事件。因此,第一次单击时绑定(bind)事件处理程序,第二次事件处理程序就位并被触发。我没有详细讨论您要完成的工作背后的逻辑,但我的猜测是,如果您将事件绑定(bind)器移到函数之外并确保所有变量都在正确的范围内,那么它将起作用。

关于javascript - 按钮需要点击两次才能触发功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542247/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com