只有在可执行代码中添加警报时,才能正确提交jQuery表单

只有在可执行代码中添加警报时,才能正确提交jQuery表单,jquery,regex,alert,form-submit,Jquery,Regex,Alert,Form Submit,当单击submit按钮时,我试图在html文件中搜索一个单词(据我所知,我的regexp还可以;它可以工作)。问题是,只有在代码底部(而不是其他地方)添加警报时,我的代码才会运行。我做错了什么 <script type="text/javascript" language="javascript"> $(document).ready(function () { $("#ana").submit(function () { var le

当单击submit按钮时,我试图在html文件中搜索一个单词(据我所知,我的regexp还可以;它可以工作)。问题是,只有在代码底部(而不是其他地方)添加警报时,我的代码才会运行。我做错了什么

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $("#ana").submit(function () {
            var lemma = $("#lexi").val();

            var lex = new RegExp(".*<b>" + lemma + ".*");

            jQuery.get('alfa.html', function (data) {
                $("#apo").html(data.match(lex));
            });

            alert(lemma);
        });
    });
</script>
<div id="apo"></div>

$(文档).ready(函数(){
$(“#ana”).submit(函数(){
var引理=$(“#lexi”).val();
var lex=new RegExp(“.*”+引理+“*”);
get('alfa.html',函数(数据){
$(“#apo”).html(data.match(lex));
});
警惕(引理);
});
});

我还没有对此进行测试,但我的假设是您需要防止submit函数出现默认值。大概是这样的:

$("#ana").on( 'submit', function (e) {
    e.preventDefault();
    // the rest of your code
});

我的理由是:由于您没有告诉页面不要在提交时执行其默认表单操作,因此您的get请求是异步的,在页面完成其操作之前没有时间执行它的操作。但是,警报会暂停页面操作,这就是为什么在最后添加警报时它会起作用。

您提供的代码可以在没有警报的情况下为我提交表单。您的控制台中是否有任何错误?或者我遗漏了什么。我很困惑-ana是一个表单还是一个按钮?你想按照你在标题中的建议提交表单吗?还是只想执行jQuery get函数?两个都做没有意义。是的,就是这样!非常感谢@尼古拉斯我很高兴能帮上忙!既然对你有用,你能接受我的回答吗?