Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 表单onsubmit返回在xmlhttp.open之后失败_Javascript_Return Value_Form Submit_Xmlhttprequest - Fatal编程技术网

Javascript 表单onsubmit返回在xmlhttp.open之后失败

Javascript 表单onsubmit返回在xmlhttp.open之后失败,javascript,return-value,form-submit,xmlhttprequest,Javascript,Return Value,Form Submit,Xmlhttprequest,我的表单向数据库添加一行。我想做的是检查我的数据是否已经在其中,并让我确认是否需要添加新数据 表格: 如果我单独保持我的确认提示,返回false将正常工作并停止提交。另一方面,它嵌套在xmlhttp.open中,提交我回答的任何内容。任何好的或坏的想法都将受到赞赏 您不能从异步方法返回!函数在调用返回之前完成。它是异步的。只要调用.send,check函数就会返回ANWYAYS。它不会等待ajax响应返回,所以没有办法这么做?在自己的函数中取出xmlhttp并进行回调以确认是否找到了它?在js中

我的表单向数据库添加一行。我想做的是检查我的数据是否已经在其中,并让我确认是否需要添加新数据

表格:


如果我单独保持我的确认提示,返回false将正常工作并停止提交。另一方面,它嵌套在xmlhttp.open中,提交我回答的任何内容。任何好的或坏的想法都将受到赞赏

您不能从异步方法返回!函数在调用返回之前完成。它是异步的。只要调用.send,check函数就会返回ANWYAYS。它不会等待ajax响应返回,所以没有办法这么做?在自己的函数中取出xmlhttp并进行回调以确认是否找到了它?在js中使用submit函数而不是return,我使它工作了。感谢您的初步指导!
<form method="POST" onsubmit="return check();">
<input type="text" name="lok" placeholder="lokalitet" value="">
<input type="text" id="cr" name="cr" value="" autocomplete="off">
<input type="submit" value="Add">
</form>
function check()
{
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {  // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        var response = xmlhttp.responseText;
        if(response!="")
        {
            if(!(confirm('Already added:\n' + response + '\n\nAdd anyway?')))
            {
                return false;
            }
        }
    }
    }
    var cr = document.getElementById('cr').value;
    xmlhttp.open("GET","check.php?q=" + cr);
    xmlhttp.send();
}