Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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
HTML/JavaScript:以编程方式检测表单提交被取消_Javascript_Html - Fatal编程技术网

HTML/JavaScript:以编程方式检测表单提交被取消

HTML/JavaScript:以编程方式检测表单提交被取消,javascript,html,Javascript,Html,我有一个网页供用户在输入字段中输入数据。在表单提交事件中,JavaScript代码用于标准化输入字段,例如将用户的MM/DD/YYYY样式日期转换为YYYY-MM-DD格式。不幸的是,如果其他JavaScript代码很可能在我的代码之后执行并取消提交,那么字段将保持标准格式,而不是用户的格式 有没有一种方法可以通过编程检测提交被取消,以便JavaScript代码可以还原输入字段?如果没有,有没有办法确保我的代码是最后一个运行的?如果没有,是否有其他方法解决此问题 注:此问题与第一个问题类似。不幸

我有一个网页供用户在输入字段中输入数据。在表单提交事件中,JavaScript代码用于标准化输入字段,例如将用户的MM/DD/YYYY样式日期转换为YYYY-MM-DD格式。不幸的是,如果其他JavaScript代码很可能在我的代码之后执行并取消提交,那么字段将保持标准格式,而不是用户的格式

有没有一种方法可以通过编程检测提交被取消,以便JavaScript代码可以还原输入字段?如果没有,有没有办法确保我的代码是最后一个运行的?如果没有,是否有其他方法解决此问题

注:此问题与第一个问题类似。不幸的是,目前还没有答案

编辑

下面的代码是我上面提到的标准化日期代码。它使用jQuery和Moment.js,但不知道正在使用jQuery验证。如果可能的话,我想让它不知道jQuery验证

$("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代码完成后运行。我弄错了吗?