私はこの非常に単純化されたAangularJSアプリを持っています。それはとてもうまくいっています。AngularJSのビューでフォームを記入して送信してください
ここで、いくつかのフィールドを入力して、ユーザーの操作なしでビューから直接フォームを送信する必要があります。ここで
は、ここではJavascriptコード(再び、簡素化され、私は他の多くの要素を削除)
mainApp.controller("resultsController",FormController);
function FormController($scope,APIService) {
$scope.result ="";
$scope.search = { keywords: "",
result:1,
term: "-1",
subject: "-1"};
$scope.searchNow = function() {
APIService.getTheResults($scope);
} // $scope.searchNow
}
function getResults($http) {
var results = {};
url = "...";
results.searchResults = function() {
var lurl = url + "a=s";
return $http({method: "JSONP", url:lurl});
} // results.searchResults
results.getTheResults = function(scope) {
var lurl = url;
$http({
method: 'POST',
url:lurl,
data:jQuery.param(scope.search),
headers:{'Content-Type':'application/x-www-form-urlencoded'}})
.success(function(lresponse){
var theResponse;
theResponse = eval(lresponse);
scope.mydata = theResponse.data[0]
})
.error(function(data,status) {
scope.result = status;
});
} // results.getTheResults
return results;
} // function getResults($http)
とは、HTMLビューがあります:
<html lang="en" ng-app="courseCatalog" ng-controller="resultsController">
<!-- some head info -->
<body>
<form id="search_form" name="search_form" ng-submit="searchNow()">
<!--
form fields in here, for example:
-->
<input type="text" id="txtkeywords" name="keywords" ng-model="search.keywords">
<input type="text" id="txtsubject" name="term" ng-model="search.subject">
<input type="text" id="textterm" name="subject" ng-model="search.term">
<input id="submit-button" name="submit-button" type="submit"
value=" Search Now "/>
</form>
<!-- Here is the , I pre-populate some form fields -->
<div id='filter_holder' class='hidden_box'>
<div class='hidden_box'>{{search.term='1|201601';}}</div>
<div class='hidden_box'>{{search.subject='6|BIO';}}</div>
</div>
<!-- And here, I try to manually submit the form -->
<script type="text/javascript">
document.getElementById('submit-button').click();
</script>
</body>
しかし、私は、ページを取得しますURL内のすべてのフォームフィールドをリロードする:
... url ... /?txtterm = -1 & txtsubject = -1 & submit-button = +検索+ Now +
私もdocument-form-submitで送信しようとしましたが、結果はありません。
すべての事前入力/送信を削除し、手動で入力してフォームを記入して送信すると、正しい結果が得られます。
ビューからフォームを送信する方法についてのご意見はありますか?
お返事ありがとうございます。フォームの宣言にmethod = "post"を追加しましたが、ページがループしてループしてしまいました。 – Palomo
同じページにフォームを送信していますか?そうした場合、問題は、ページが読み込まれるたびにフォームを送信しているため、何度も何度も繰り返してしまうことです。 –