在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代码。