如果你看一下我的fiddle來自外部控制器的按鈕提交表單驗證
我不知道爲什麼內部「提交」按鈕會觸發瀏覽器驗證(按照required
屬性),但「外部按鈕'不?
外部按鈕調用形式submit()
函數,所以我會期待相同的行爲,不是嗎?
我知道這可能不是一個角度問題,但我正在尋找一個Angular解決方案,這意味着我不必使用$元素(據我所知這是不好的做法)。
如果你看一下我的fiddle來自外部控制器的按鈕提交表單驗證
我不知道爲什麼內部「提交」按鈕會觸發瀏覽器驗證(按照required
屬性),但「外部按鈕'不?
外部按鈕調用形式submit()
函數,所以我會期待相同的行爲,不是嗎?
我知道這可能不是一個角度問題,但我正在尋找一個Angular解決方案,這意味着我不必使用$元素(據我所知這是不好的做法)。
內部提交按鈕觸發所需的行爲,因爲它的瀏覽器默認行爲。您無法通過使用javascript提交表單來觸發required
行爲。您必須找到其他方式向用戶展示他們應該如何處理表單。您可能需要使用ngForm
附帶的$valid
財產。
當您使用$元素時,您會觸發純JavaScript中的事件,並且角度不知道發生了什麼,因此無法在此情況下驗證表單。你應該觸發表單驗證第一:
$scope.$broadcast('$validate');
if(!ngForm.$invalid)
$element.find("form")[0].submit();
對於這項工作,請定義與NG-form標籤的形式,像這樣:
<ng-form> /* BLABLABLA */ </ng-form>
此處瞭解詳情:
http://docs.angularjs.org/api/ng.directive:ngForm
您還可以選擇此項:
謝謝。然而,我正在尋找的驗證是瀏覽器內置驗證。 –
內部提交按鈕觸發'required'行爲,因爲它的瀏覽器默認行爲。您無法通過使用javascript提交表單來觸發'required'行爲。您必須找到其他方式向用戶展示他們應該如何處理表單。您可能想使用'ngForm'附帶的'$ valid'屬性。 – Daiwei
謝謝。如果您將此添加爲答案,我會將其標記爲正確。 –
謝謝@ rob-campo – Daiwei