Angularjs 限制在手机上提交表单

Angularjs 限制在手机上提交表单,angularjs,validation,Angularjs,Validation,我有带角度验证的HTML表单,除非$valid表单状态为true,否则不应提交该表单 <form name="searchForm" action="/Search" method="get" novalidate> <input name="keywords" required type="search" ng-model="form.keywords"> <button type="submit" ng-disabled="searchForm.

我有带角度验证的HTML表单,除非
$valid
表单状态为
true
,否则不应提交该表单

<form name="searchForm" action="/Search" method="get" novalidate>
    <input name="keywords" required type="search" ng-model="form.keywords">
    <button type="submit" ng-disabled="searchForm.$invalid">Go</button>
</form>
ng disabled
指令防止为桌面或移动仿真器提交无效表单。但如果我使用移动设备上的屏幕键盘提交表单,我可以使用
$invalid
状态提交表单。如何使用触摸设备键盘处理这种情况?

尝试使用指令处理表单提交。角度的方法是通过$http或类似的方式触发对服务器的搜索请求,而不是重新加载页面


您当前的设置是一个典型的html表单,它通过get-in-submission将数据发送到/Search端点。即使在桌面浏览器中,在输入内部按enter键也会提交表单。

不幸的是,应用程序体系结构不允许避免页面重新加载,并且不太清楚如何仅使用角度功能(不直接访问DOM)从角度处理程序提交表单。您可以在提交()中使用$window.location.href函数重定向到另一个页面(并在该url中包含get参数)。例如,看看这个plunker:它仍然像使用DOM提交表单一样丑陋。所以,唯一合适的角度方法是避免重新加载页面,对吗?不太清楚“使用DOM提交”是什么意思。没有提交,只有angular(javascript)重定向到基于输入数据的特定url。我想说的是,真正的“仅DOM”提交是在不涉及javascript(仅html)的情况下进行的。由于angular应用程序通常是单页应用程序,所以只需加载一次,然后使用ajax获取所有后续内容,重定向并不是一项普通任务。