Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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表单提交和包含提交按钮的表单之间的区别_Javascript_Html_Forms_Struts - Fatal编程技术网

JavaScript表单提交和包含提交按钮的表单之间的区别

JavaScript表单提交和包含提交按钮的表单之间的区别,javascript,html,forms,struts,Javascript,Html,Forms,Struts,我需要一个理论上的澄清…JavaScript表单提交和包含提交按钮的表单之间有什么区别 (我正在使用该框架,但我认为它不会影响行为。) 我的意思是,这是我的示例,提交表单与输入type=“submit”有什么区别 函数doMySubmit(){ var myform=document.getElementById('searchFilterPerform'); myform.myfield.value=“你好世界”; } 然后在JavaScript中使用submit提交表单 <html

我需要一个理论上的澄清…JavaScript表单提交和包含提交按钮的表单之间有什么区别

(我正在使用该框架,但我认为它不会影响行为。)

我的意思是,这是我的示例,提交表单与输入type=“submit”有什么区别


函数doMySubmit(){
var myform=document.getElementById('searchFilterPerform');
myform.myfield.value=“你好世界”;
}
然后在JavaScript中使用submit提交表单

<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
    <table border="0" class="filterclass" width="530px">
        <tr>
            <td class="filterheader" align="center">
                <input type="button" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
            </td>
        </tr>
    </table>
</html:form>

function doMySubmit() {
    var myform = document.getElementById('searchFilterForm');
    myform.myfield.value = "Hello World";
    myform.submit();
}

函数doMySubmit(){
var myform=document.getElementById('searchFilterPerform');
myform.myfield.value=“你好世界”;
myform.submit();
}

如果用户禁用javascript,则无法提交表单。 更好的做法是添加一个类型submit以便于访问。
更多信息

如果用户禁用javascript,则无法提交表单。 更好的做法是添加一个类型submit以便于访问。
更多信息

最显著的区别是,当通过单击提交按钮提交表单时,将有一个与所单击按钮对应的请求参数。因此,在您的示例中,使用submit按钮,将有一个名为
MyList
且值为
SEND
的请求参数。如果您在JavaScript中调用
form.submit()
,则不会出现错误


因此,如果调用
request.getParameter(“MyList”)
在服务器端,第一个方法将返回一个值为SEND的字符串,第二个方法将返回
null
。当您希望根据是否已提交表单,甚至是使用哪个按钮提交表单(如果您有多个按钮)来控制操作流程时,这一点非常重要.

最显著的区别是,当通过单击“提交”按钮提交表单时,将有一个与单击的按钮对应的请求参数。因此,在您的示例中,使用submit按钮,将有一个名为
MyList
且值为
SEND
的请求参数。如果您在JavaScript中调用
form.submit()
,则不会出现错误


因此,如果调用
request.getParameter(“MyList”)
在服务器端,第一个方法将返回一个值为SEND的字符串,第二个方法将返回
null
。如果您想根据表单是否已提交,或者哪一个按钮用于提交表单(如果您有多个按钮)来控制操作流程,则这一点非常重要。

问题是,为什么这样做?为什么JS表单提交不发送按钮?这是设计还是一个bug?如果是前者,为什么要这样做?@user3621633一个表单可以有多个提交按钮。它应该为哪一个发送参数?问题是为什么行为是这样的?为什么JS表单提交不发送按钮?这是设计还是一个bug?如果是前者,为什么要这样做?@user3621633一个表单可以有多个提交按钮。它应该为哪一个发送参数?
<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
    <table border="0" class="filterclass" width="530px">
        <tr>
            <td class="filterheader" align="center">
                <input type="button" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
            </td>
        </tr>
    </table>
</html:form>

function doMySubmit() {
    var myform = document.getElementById('searchFilterForm');
    myform.myfield.value = "Hello World";
    myform.submit();
}