我有一个网页供用户在输入字段中输入数据。在表单提交事件中,JavaScript代码用于“标准化”输入字段,例如将用户的MM / DD / YYYY样式日期转换为YYYY-MM-DD格式。不幸的是,如果其他JavaScript代码(很可能jQuery Validation)在我之后执行并取消提交,则字段将保持标准格式而不是用户格式。
有没有办法以编程方式检测提交被取消(以便JavaScript代码可以还原输入字段)?如果没有,有没有办法确保我的代码是最后一个运行?如果没有,是否有其他方法可以解决这个问题?
注意:此问题与here类似。不幸的是,它还没有答案。
修改
以下代码是我上面提到的标准化日期代码。它使用jQuery和Moment.js,但不知道正在使用jQuery Validate。如果可能的话,我想让它不知道jQuery Validate。
$("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"));
}
});
});