Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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
Javascript 单击HTML表单提交按钮调用一个函数。提交表格之前,功能是否始终完成?_Javascript_Html_Forms - Fatal编程技术网

Javascript 单击HTML表单提交按钮调用一个函数。提交表格之前,功能是否始终完成?

Javascript 单击HTML表单提交按钮调用一个函数。提交表格之前,功能是否始终完成?,javascript,html,forms,Javascript,Html,Forms,我有一个HTML表单。其中一个表单字段值由JavaScript函数设置。单击submit按钮时调用JavaScript函数。我能否确保函数总是在提交表单之前及时完成并设置字段值 编辑:这是要求的代码 $('#submitbutton').click(function () { createWholeArray(); }); function createWholeArray() { var tem

我有一个HTML表单。其中一个表单字段值由JavaScript函数设置。单击submit按钮时调用JavaScript函数。我能否确保函数总是在提交表单之前及时完成并设置字段值

编辑:这是要求的代码

        $('#submitbutton').click(function () {
            createWholeArray();
        });

        function createWholeArray() {

            var templateString = width + " " + height + "\n";

            for (var x = 0; x < width; x++) {
                for (var y = 0; y < height; y++) {
                    if ($('#' + x + '-' + y).hasClass('selected')) {
                        templateString = templateString.concat("\n" + x + " " + y);
                    }
                }
            }

            document.getElementById('templatestring').value = templateString;
        }
$('submitbutton')。单击(函数(){
createWholeArray();
});
函数createWholeArray(){
var templateString=width+“”+height+“\n”;
对于(变量x=0;x
是的,您可以,在实际提交(导致重新加载页面)完成之前触发
submit
事件。您甚至可以阻止表单与脚本一起发送。请注意,如果您希望在浏览器默认表单发送完成之前完成操作,则只能确定

事实上,只有在该函数中使用synchron操作时,才会出现这种情况。如果使用异步函数,则必须防止现在提交表单,并从该函数的回调中提交表单

请注意使用表单上的
submit
事件,而不是按钮上的
click
事件(如果适用)。它将确保在发送表单时,通过按enter键或其他可能的方式发送表单,也会调用您的函数


正如MarkP在评论中指出的那样,请记住,用户可能禁用了javascript,这可能会导致您的情况出现意外结果。

是的,您可以,在实际提交(导致重新加载页面)完成之前触发
submit
事件。您甚至可以阻止表单与脚本一起发送。请注意,如果您希望在浏览器默认表单发送完成之前完成操作,则只能确定

事实上,只有在该函数中使用synchron操作时,才会出现这种情况。如果使用异步函数,则必须防止现在提交表单,并从该函数的回调中提交表单

请注意使用表单上的
submit
事件,而不是按钮上的
click
事件(如果适用)。它将确保在发送表单时,通过按enter键或其他可能的方式发送表单,也会调用您的函数

正如MarkP在评论中指出的那样,请记住,用户有可能禁用了javascript,这可能会在您的情况下导致意外的结果。

做一件事。 将submit按钮更改为normal按钮,并将click事件发送给他

通过点击普通按钮手动提交您的页面。 我在我的项目中也做了同样的事情,下面是代码

$("#SignUpButton").click(function()
        {
                $('#loginForm').attr('method','post');
                $('#loginForm').attr('action','SignupServlet');
                $('#loginForm').submit();
        }); 
做一件事。 将submit按钮更改为normal按钮,并将click事件发送给他

通过点击普通按钮手动提交您的页面。 我在我的项目中也做了同样的事情,下面是代码

$("#SignUpButton").click(function()
        {
                $('#loginForm').attr('method','post');
                $('#loginForm').attr('action','SignupServlet');
                $('#loginForm').submit();
        }); 

你是如何截取提交的?给我们看一个小代码:)不,你不能确定。你是如何截取提交的?给我们看一点代码:)不,你不能确定。@manta如果没有javascript已经在处理表单,那么我们只讨论默认的浏览器行为,使用submit事件将完成他希望它做的事情(将输入字段的值设置为某个值)。如果用户的浏览器禁用了JavaScript,则不会触发该功能,但会触发提交事件(假设这是在标记中设置的。@MarkP fair point,我假设启用了javascript,因为没有它,函数将无法执行任何操作,但值得一提的是要记住这一点!@manta如果没有javascript已经在处理表单,那么我们只讨论默认的浏览器行为,使用submit事件即可他期望它做什么(将输入字段的值设置为某个值)。如果用户的浏览器禁用了JavaScript,该函数将不会启动,但提交事件将启动(假设这是在标记中设置的。@MarkP fair point,我假设启用了javascript,因为如果没有它,函数将无法执行任何操作,但值得一提的是要记住这一点!