2016-07-11 4 views
0

Angular JS Form validation inside tabset give error : TypeError: Cannot read property '$valid' of undefinedを参照しましたが、探しているものが正確ではありません。

私は

<form name="userForm" ng-submit="submit()" novalidate> 
    <input type="text" class="form-control" ng-model="user.name" required> 
    <button type="submit" class="btn btn-primary" ng-disabled="!userForm.$valid">Submit</button> 
</form> 

そして、私のjs、htmlコードを持っているが、何かのように、

$scope.submitForm = function() { 

    // check to make sure the form is completely valid 
    if ($scope.userForm.$valid) { 
     alert('its working'); 
    } 
}; 

私はこのエラーを取得しています。 ng-submitを使用していたときにこれを解決する方法はあります。

+1

関数の名前は 'submitForm()'であるのに、なぜ、あなたの 'NG-submit'は、') '(提出しているのでしょうか? – JLRishe

+0

私は、コードの一部を入れています。 –

+0

は私たちに、実際にあなたが持っているものを表すコードを教えてください。内部的に一貫性のないコードではありません。 – JLRishe

答えて

1

あなたは以下のコードを試してみてくださいでした:

$scope.submitForm = function() { 

    // check to make sure the form is completely valid 
    if (userForm.$valid) { 
     alert('its working'); 
    } 

}; 

をユーザーフォームが$scopeのプロパティではありませんので、私は、$scope.userForm.$validから$scopeを削除しました。

あなたは、彼らがフォームにバインドする方法を見ることができます公式AngularJSドキュメント、especially this partを、チェックすることができます。

+0

これは、エラーが削除されますが有効になっていました提出します。入力タグにname属性を追加する必要がありますか? –

+0

これは、あなたの ''に名前がないからです。この方法では、検証はフォーム上では機能しません。 'name =" username "'タグを追加すると、検証が機能します。 –

+0

これはselectタグにも適用されますか? –

関連する問題