Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
在jQuery函数之前运行Javascript函数_Javascript_Jquery_Html_Forms - Fatal编程技术网

在jQuery函数之前运行Javascript函数

在jQuery函数之前运行Javascript函数,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我试图让我的表格在提交前检查两个输入框是否有任何数据输入。我在这方面遇到问题的原因是因为我使用了以下- $('form.ajax').on('submit', function () { var that = $(this), url = that.attr('action'), method = that.attr('method'), data = {}; that.find('[name]').each(function (

我试图让我的表格在提交前检查两个输入框是否有任何数据输入。我在这方面遇到问题的原因是因为我使用了以下-

$('form.ajax').on('submit', function () {
    var that = $(this),
        url = that.attr('action'),
        method = that.attr('method'),
        data = {};

    that.find('[name]').each(function (index, value) {
        var that = $(this),
            name = that.attr('name'),
            value = that.val();

        data[name] = value;
    });

    $.ajax({
        url: url,
        type: method,
        data: data,
    })
    this.reset();
    return false;
});
这使得表单可以在不刷新页面的情况下提交,我还可以在按下提交按钮的几秒钟内看到一个图像-

$(".bplGame1Fade").click(function(){
$("#bplGame1ThumbUp").fadeIn(1000);
$("#bplGame1ThumbUp").fadeOut(1000); });
我不想让它们运行,除非两个输入框中都有数据。我尝试过使用OnClick()和OnSubmit()。当使用这些时,会显示消息说它不是我想要的有效条目,但一旦单击“确定”,表单将继续提交

我是否可以运行JS函数检查输入框,如果其中一个框为空,请取消提交

如果您有任何帮助,我们将不胜感激


谢谢。

为什么不添加一个if条件来检查是否有空输入?如果函数无效,可以返回该函数

$('form.ajax').on('submit', function () {
    var that = $(this),
        url = that.attr('action'),
        method = that.attr('method'),
        data = {};

    var context = this;
    var valid = true;
    var total = that.find('[name]').length;
    that.find('[name]').each(function (index, value) {
        var that = $(this),
            name = that.attr('name'),
            value = that.val();
        if (!value) {
            valid = false;
            return;
        }
        data[name] = value;
        if (index === total - 1) { //last item
            if (valid) {
                $.ajax({
                    url: url,
                    type: method,
                    data: data,
                });
                context.reset();
            }
        }
    });
});

编辑:您可以将ajax调用放在foreach内部。因此,在最后一项中,如果每个输入都有一个值,您将进行ajax调用。

那么为什么不在ajax请求之前检查它呢?我错过了什么吗?我错过了,但是ajax请求仍然在继续。我应该指出,我是这方面的初学者,并从在线源代码获得jQuery代码。