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

时间:2015-01-08 19:53:20

标签: javascript return-value form-submit xmlhttprequest

我的表单为数据库添加了一行。我要做的是检查我的数据是否已经存在,并让我确认是否应该添加新数据。

形式:

<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>

和js:

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();
}

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

0 个答案:

没有答案