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

时间:2014-06-07 17:48:21

标签: jquery regex alert form-submit

当我点击提交按钮时,我正试图在html文件中搜索一个单词(据我所知,我的正则表达式没问题;它有效)。问题是我的代码只有在代码底部添加警报(而不是其他任何地方)时才会运行。我做错了什么?

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

1 个答案:

答案 0 :(得分:1)

我还没有对此进行过测试,但我的假设是您需要阻止提交功能的默认设置。像这样:

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

以下是我的推理:既然你没有告诉网页不要在提交时执行默认的表单操作,那么你的get请求是异步的,没有时间做它的事情在页面完成其操作之前。但是,警报暂停页面操作,这就是为什么当你在那里添加警报时它会工作的原因。