说我有:
<form method="get" action="something.php">
<input type="text" name="name" />
</form>
<input type="submit" />
我如何在表单外提交那个提交按钮,我认为在HTML5中有一个提交的动作属性,但我不确定这是否完全跨浏览器,如果不是的话,有没有办法这样做?
说我有:
<form method="get" action="something.php">
<input type="text" name="name" />
</form>
<input type="submit" />
我如何在表单外提交那个提交按钮,我认为在HTML5中有一个提交的动作属性,但我不确定这是否完全跨浏览器,如果不是的话,有没有办法这样做?
当前回答
一个对我很有效的解决方案,在这里仍然没有。它需要在<表单>中有一个视觉上隐藏的<submit>或<input type="submit">元素,并在其外部有一个相关的<label>元素。它看起来是这样的:
<form method="get" action="something.php">
<input type="text" name="name" />
<input type="submit" id="submit-form" class="hidden" />
</form>
<label for="submit-form" tabindex="0">Submit</label>
现在,该链接允许您通过单击<label>元素来“单击”表单<submit>元素。
其他回答
类似于这里的另一个解决方案,只是稍加修改:
<form method="METHOD" id="FORMID">
<!-- ...your inputs -->
</form>
<button type="submit" form="FORMID" value="Submit">Submit</button>
https://www.w3schools.com/tags/att_form.asp
你可以使用jQuery:
<form id="myForm">
<!-- form controls -->
</form>
<input type="submit" id="myButton">
<script>
$(document).ready(function () {
$("#myButton").click(function () {
$("#myForm").submit();
});
});
</script>
试试这个:
<input type="submit" onclick="document.forms[0].submit();" />
尽管我建议在表单中添加一个id,并通过它来访问,而不是document.forms[index]。
如果你会使用jQuery,你就可以使用这个
<form method="get" action="something.php" id="myForm">
<input type="text" name="name" />
<input type="submit" style="display:none" />
</form>
<input type="button" value="Submit" id="myButton" />
<script type="text/javascript">
$(document).ready(function() {
$("#myButton").click(function() {
$("#myForm").submit();
});
});
</script>
所以,底线是创建一个按钮像提交,并把真正的提交按钮在表单(当然隐藏它),并通过jquery通过点击“Fake Submit”按钮提交表单。希望能有所帮助。
更新:在现代浏览器中,您可以使用form属性来完成此操作。
据我所知,你不能没有javascript做到这一点。
这是说明书上说的
用于创建控件的元素通常出现在FORM内部 元素,但也可以出现在FORM元素声明之外 当它们被用于构建用户界面时。这在 内在事件部分。注意,窗体外部的控件不能这样做 成功控制。
这是我的粗体
提交按钮被认为是一个控件。
http://www.w3.org/TR/html4/interact/forms.html#h-17.2.1
从评论中
我有一个多选项卡设置区域的按钮更新所有,到期 根据它的设计,按钮将在窗体之外。
为什么不把输入放在表单内部,而是使用CSS将其定位到页面的其他地方呢?