HTML/JavaScript:以编程方式检测表单提交被取消
我有一个网页供用户在输入字段中输入数据。在表单提交事件中,JavaScript代码用于标准化输入字段,例如将用户的MM/DD/YYYY样式日期转换为YYYY-MM-DD格式。不幸的是,如果其他JavaScript代码很可能在我的代码之后执行并取消提交,那么字段将保持标准格式,而不是用户的格式 有没有一种方法可以通过编程检测提交被取消,以便JavaScript代码可以还原输入字段?如果没有,有没有办法确保我的代码是最后一个运行的?如果没有,是否有其他方法解决此问题 注:此问题与第一个问题类似。不幸的是,目前还没有答案 编辑 下面的代码是我上面提到的标准化日期代码。它使用jQuery和Moment.js,但不知道正在使用jQuery验证。如果可能的话,我想让它不知道jQuery验证HTML/JavaScript:以编程方式检测表单提交被取消,javascript,html,Javascript,Html,我有一个网页供用户在输入字段中输入数据。在表单提交事件中,JavaScript代码用于标准化输入字段,例如将用户的MM/DD/YYYY样式日期转换为YYYY-MM-DD格式。不幸的是,如果其他JavaScript代码很可能在我的代码之后执行并取消提交,那么字段将保持标准格式,而不是用户的格式 有没有一种方法可以通过编程检测提交被取消,以便JavaScript代码可以还原输入字段?如果没有,有没有办法确保我的代码是最后一个运行的?如果没有,是否有其他方法解决此问题 注:此问题与第一个问题类似。不幸
$("form").submit(function () {
// For each date field...
$("input[type=date]").each(function () {
// ...get its value...
var $dateField = $(this);
var day = moment($dateField.val());
// ...and, if it is recognized, ...
if (day.isValid()) {
// ...convert it to the "standard" format.
$dateField.val(day.format("YYYY-MM-DD"));
}
});
});
为什么你的网站上有其他你无法控制的代码?我指的是最可能的jQuery验证部分。我认为您应该首先运行验证,然后标准化输入,然后将其发送出去。为什么不处理JQuery验证的invalidHandler函数回调呢。如果提交失败,它会告诉您…@JonasGrumann:jQuery验证没有在提交事件上运行吗?如果是这样,那么我如何使其在提交时触发的代码之前运行?请注意,我的JavaScript代码现在已包含在问题中。@LcSalazar:我的印象是,invalidHandler可能会在我的JavaScript代码完成后运行。我弄错了吗?