2015-06-17 53 views
0

我有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狀態提交它。觸摸設備鍵盤如何處理這種情況?

回答

0

嘗試使用ngSubmit指令來處理表單提交。角度的方式是通過$ http或類似的方式觸發對服務器的搜索請求,而不是頁面重新加載。

您當前的設置是一個典型的html表單,它通過提交將數據發送到/Search端點。即使在桌面瀏覽器中輸入內容時也會提交表單。

+0

不幸的是,應用程序架構不允許避免頁面重新加載,並且不太清楚如何使用Angular處理程序僅使用Angular功能提交表單(無需直接訪問DOM) – Random

+0

您可以在submit()中使用$ window.location.href,函數重定向到不同的頁面(並將參數包含到該URL中)。看到這個plunker例如:http://plnkr.co/edit/IMyHLhFMcVfC4RtoFpi6?p=preview – Capricorn

+0

它似乎仍然像提交表單使用DOM醜陋。 那麼,唯一合適的角度方法是避免頁面重新加載,對嗎? – Random