2017-07-01 69 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作爲參數

ng-submit="AdvanceSearchSubmit(SearchKeyWord)" 

控制器

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

你並不需要在所有的事件傳遞到您的AdvanceSearchSubmit上提交。你已經有自己的價值觀裏面提供像$scopeng-modelng-model="SearchKeyWord"

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

輸入字段爲什麼event.SearchKeyWord.value不工作,你能解釋一下請???? –

+0

@nayanchowdhury我不是說這是不可能的,你可以通過在你的函數中執行'console.log($(event.target).serializeArray())'來檢索表單值。但是完全沒有必要這麼做,AngularJS爲您提供了非常棒的數據綁定功能,可以跟蹤您的模型,並在用戶更改值時更新數值。更好的是,您應該將'model'傳遞給'submit'方法並將這些數據發送到API .. –

相關問題