2017-07-01 11 views
0

フォームが送信されるときに、AngularJSを使用してテキストフィールド値の値を取得します。AngularJSを使用してテキストフィールドの値を取得するにはどうすればよいですか?

以下のコードは、常に「未定義」を示しています。

HTML:

<form ng-submit="AdvanceSearchSubmit($event)" name="AdvanceSearch" novalidate> 
<p ng-show="!AdvanceSearch.SearchKeyWord.$pristine && AdvanceSearch.SearchKeyWord.$invalid" class="text-danger">Text Cannot Be Empty!</p> 
    <div ng-hide="AdvanceSearchModel" class="input-group"> 
    <input name="SearchKeyWord" ng-model="SearchKeyWord" id="SearchKeyWord" class="form-control" placeholder="Search in timeline...." type="text" required> 
     <span class="input-group-btn" ng-click="isAdvanceSearch='false'; SearchPost(0,'true')"> 
     <button ng-disabled="AdvanceSearch.$invalid" type="submit" name="search" id="search-btn" class="btn btn-flat"> 
     <i class="fa fa-search"></i> 
     </button> 
     </span> 
    </div> 
</form> 

一つの試み:

$scope.AdvanceSearchSubmit = function(event) 
{ 
    alert(event.target.value); 
}; 

別の試み:

$scope.AdvanceSearchSubmit = function(event) 
{ 
    alert(event.SearchKeyWord.value); 
}; 

答えて

0

代わりにeventパラメータ

として SearchKeyWordを渡します

コントローラ

$scope.AdvanceSearchSubmit = function(keyWord) 
{ 
    alert(keyWord); 
}; 
0

あなたが提出する上で、あなたのAdvanceSearchSubmitにすべてのイベントを渡す必要はありません。あなたは既にevent.SearchKeyWord.valueが機能しない理由ng-model="SearchKeyWord"

alert($scope.SearchKeyWord); //access value from `$scope` directly 
+0

などの入力フィールドのng-modelよう$scope内の自分の価値観を用意してあなたがしてください説明することができます???? –

+0

@nayanchowdhury私はそれが不可能ではないと言っているのではなく、あなたの関数内で 'console.log($(event.target).serializeArray())'を実行することによってフォーム値を取得できます。しかし、AngularJSは、ユーザーが値を変更するたびにモデルを追跡し、値を更新する素晴らしいデータ結合機能を提供します。あなたの 'model'を' submit'メソッドに渡し、そのデータをAPIに送るべきです。 –

関連する問題