Javascript 函数checkusername()正在发出警报,但我不希望它发出警报
当我调用Javascript 函数checkusername()正在发出警报,但我不希望它发出警报,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我调用checkusername()时,它会发出警报。但是为什么我调用markcheck()时它会发出警报呢 我使用了checkbutton=1作为标志,如果checkbutton==1,我还使用了一个条件。它不应发出警报,但仍在发出警报 如果有人认为这个功能可以缩小。请缩小此尺寸: <script> var checkbut = 0; function markcheck() { checkbut = "1"; checkusername(); } functio
checkusername()
时,它会发出警报。但是为什么我调用markcheck()
时它会发出警报呢
我使用了checkbutton=1
作为标志,如果checkbutton==1,我还使用了一个条件。它不应发出警报,但仍在发出警报
如果有人认为这个功能可以缩小。请缩小此尺寸:
<script>
var checkbut = 0;
function markcheck()
{
checkbut = "1";
checkusername();
}
function checkusername()
{
var username = document.getElementById("username").value;
$.ajax({
method: 'POST',
url: 'saves/checkusername.php',
data: {
username: username
},
beforeSend: function()
{
document.getElementById("checkbutton").innerHTML = "Checking";
setTimeout(function(){document.getElementById("checkbutton").innerHTML = "Check Availiblity";},1000);
},
success: function(data)
{
if (data == "1")
{
document.getElementById("taken").innerHTML = "This Username is already taken. Choose a new one.";
document.getElementById("username").className = "form-control form-control-danger";
document.getElementById("labelusername").style.color = "red";
}
else
{
document.getElementById("labelusername").style.color = "";
document.getElementById("taken").innerHTML = "";
if (data == "0")
{
if (checkbut == "0")
{
alert('ujhygtfrd');
}
else
{
}
}
}
}
})
}
</script>
var-checkbut=0;
函数markcheck()
{
checkbut=“1”;
checkusername();
}
函数checkusername()
{
var username=document.getElementById(“用户名”).value;
$.ajax({
方法:“POST”,
url:'saves/checkusername.php',
数据:{
用户名:username
},
beforeSend:function()
{
document.getElementById(“checkbutton”).innerHTML=“Checking”;
setTimeout(函数(){document.getElementById(“checkbutton”).innerHTML=“Check Availability”;},1000);
},
成功:功能(数据)
{
如果(数据==“1”)
{
document.getElementById(“take”).innerHTML=“此用户名已被使用。请选择一个新用户名。”;
document.getElementById(“用户名”).className=“表单控制表单控制危险”;
document.getElementById(“labelusername”).style.color=“红色”;
}
其他的
{
document.getElementById(“labelusername”).style.color=“”;
document.getElementById(“take”).innerHTML=“”;
如果(数据=“0”)
{
如果(检查但=“0”)
{
警报(“ujhygtfrd”);
}
其他的
{
}
}
}
}
})
}
在markcheck()函数之外设置checkbutton变量
与此相反:
function markcheck()
{
var checkbutton = "1";
checkusername();
}
这:
或者像这样:
var checkbutton;
function markcheck()
{
checkbutton = "1"
checkusername();
}
这是因为变量checkbutton位于checkmark函数的局部范围内,当markcheck()结束。您的变量位于函数内部,将其置于函数外部,使其成为全局变量,以便其他函数可以访问其值,并在函数外部对其进行定义
var checkButton;
function checkMark(){
checkButton = "1";
anotherFunction();
}
function anotherFunction(){
if(checkButton=="1"){
return 0;
}else{
alert("yeah its value is not 1");
}
}
请,使用代码最小化<代码>var checkbutton=“1”代码>是一个局部变量。它只存在于markcheck()
的内部。请阅读JSK中的各种作用域。如果您使用jQuery,请使用$(“#id”)
而不是文档。getElementById
@Ikillnukes缩小本身不应该是一个目标。编写可读的代码,然后通过缩略器将其插入。用户告诉else case总是被调用。我只调用checkusername()或markcheck(),因此如果我在函数var之外创建var checkbutton,则不会调用create@sidhant不,变量将可用于所有函数,并且,对于其他js文件。如果选择第二个选项为true,则将始终调用else case,除非修改checkbutton变量。我已编辑了该问题。请现在检查一下。问题仍然存在,两个按钮都在发出警报,您在哪里调用markcheck()???我看不出该值可以更改,因为您不调用它。另外,请使用整数而不是字符串。。。
var checkButton;
function checkMark(){
checkButton = "1";
anotherFunction();
}
function anotherFunction(){
if(checkButton=="1"){
return 0;
}else{
alert("yeah its value is not 1");
}
}