Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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/82.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 HTML5 button.formaction属性在<;之外不起作用;表格>;_Javascript_Html_Forms_Button - Fatal编程技术网

Javascript HTML5 button.formaction属性在<;之外不起作用;表格>;

Javascript HTML5 button.formaction属性在<;之外不起作用;表格>;,javascript,html,forms,button,Javascript,Html,Forms,Button,为什么按钮.formaction属性在之外不起作用 这失败了: <button type="submit" formaction="a.jsp">a<button> <button type="submit" formaction="b.jsp">b<button> <button type="submit" formaction="c.jsp">c<button> a B C 然而,这对我来说是可行的: <for

为什么
按钮.formaction
属性在
之外不起作用

这失败了:

<button type="submit" formaction="a.jsp">a<button>
<button type="submit" formaction="b.jsp">b<button>
<button type="submit" formaction="c.jsp">c<button>
a
B
C
然而,这对我来说是可行的:

<form action="foo.jsp" method="post">
    <button type="submit" formaction="a.jsp">a<button>
    <button type="submit" formaction="b.jsp">b<button>
    <button type="submit" formaction="c.jsp">c<button>
</form>

A.
B
C

但是在我的应用程序中,使用表单是没有意义的,因为我从来不想访问
foo.jsp
,而且我没有默认设置。是否有某种方法可以使formaction工作而不使用伪值或将表单默认为
a.jsp

通常
表单
元素用于向服务器发送数据。它环绕指定数据的元素,例如
输入
按钮
元素。如果向按钮元素添加
名称
属性,则会将此名称-值对发送到服务器

如果您不需要向服务器发送任何(附加)数据,只需使用链接元素,并使用CSS将其设置为按钮样式,如果您希望:

<a href="a.jsp" class="btn">a</a>
<a href="b.jsp" class="btn">b</a>
<a href="c.jsp" class="btn">c</a>
如果使用按钮上的
表单
属性引用关联表单(id值),您甚至可以将按钮放置在
表单
元素之外:

<form method="post" id="myForm">
    <input type="text" name="my-data" value="my data"/>
</form>

<button type="submit" formaction="a.jsp" form="myForm">a</button>
<button type="submit" formaction="b.jsp" form="myForm">b</button>
<button type="submit" formaction="c.jsp" form="myForm">c</button>

A.
B
C

我不知道,但是名为
formaction
的属性似乎正好在
表单中工作。是的,这很有意义。我想我试图理解的是,将它与规范中的表单绑定的原因是什么?这仅仅是为了把陈述和逻辑分开吗?那么为什么要引入formaction…?因为您正在执行formaction,它将在请求中发送表单数据。因此,您需要提交一个表单。如果困扰您的是dummy action属性,就不要指定它
<form method="post" id="myForm">
    <input type="text" name="my-data" value="my data"/>
</form>

<button type="submit" formaction="a.jsp" form="myForm">a</button>
<button type="submit" formaction="b.jsp" form="myForm">b</button>
<button type="submit" formaction="c.jsp" form="myForm">c</button>