0

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

$('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函数来检查输入框,如果其中一个框为空,则取消提交。

对此的任何帮助将不胜感激,

谢谢。

4

1 回答 1

1

为什么不添加一个 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 调用。

于 2013-10-13T21:12:50.053 回答