Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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验证错误_Javascript_Angularjs_Html_Forms_Validation - Fatal编程技术网

Javascript 以编程方式提交角度表单,但仍然会收到HTML5验证错误

Javascript 以编程方式提交角度表单,但仍然会收到HTML5验证错误,javascript,angularjs,html,forms,validation,Javascript,Angularjs,Html,Forms,Validation,我在页面顶部有一个保存按钮,一个搜索表单,然后是我的表单,在那里我可以编辑一个项目。它看起来像这样: <button type="button" ng-click="save()">Save</button> <form name="searchForm" ng-submit="search()"> <input type="text" ng-model="criteria" /> </form> <form name="

我在页面顶部有一个保存按钮,一个搜索表单,然后是我的表单,在那里我可以编辑一个项目。它看起来像这样:

<button type="button" ng-click="save()">Save</button>

<form name="searchForm" ng-submit="search()">
  <input type="text" ng-model="criteria" />
</form>

<form name="saveForm" ng-submit="save()">
  <input type="text" ng-model="item.field" required />
</form>
保存

我希望我的“保存”按钮提交保存表单,而不是直接调用
save()
,因此如果必填字段为空,浏览器将提示用户填写它。如何从表单外部的按钮提交表单?

如果您想使用HTML5验证,我很确定您必须使用真正的提交输入,而不是角度按钮

理论上,您可以在标准提交输入上使用HTML5“form”属性来实现此效果。看见但是,您需要仔细检查浏览器兼容性


如果这不起作用,我怀疑您将不得不退回到将提交输入放在表单中的标记中,然后使用“聪明”的CSS将按钮重新定位到页面上需要的位置。

因为我需要支持较旧的浏览器,所以我无法使用Dana的答案。最后,我在页面底部添加了一个id为“saveButton”的提交按钮,然后将顶部按钮更改为:

<button type="button" onclick="document.getElementById('saveButton').click()">
    Save
</button>

拯救

我知道这不是一种有棱角的做事方式,我觉得这样做很肮脏,但它确实有效。

谢谢,我不知道
表单
属性。总有一天会派上用场的。您的答案是一个很好的解决方案,因此我将其标记为答案,但我必须支持较旧的浏览器,因此我发布了另一个答案,其中包含了我为使其正常工作所做的工作。是的,这正是我所期望的。不过,我不得不分享表单属性,就在前几周我在阅读其他HTML5改进时读到的。有一天:)