如何使用AngularJS提交选项和文本输入表单

时间:2016-08-30 13:50:19

标签: java html angularjs forms

我是设置表单的新手,我需要能够在另一台服务器上向Java后端提交两个单独的值。其中一个值是预定义值,应来自select,另一个来自文本input字段。

在前端,用户将从下拉列表中选择一个选项并在文本框中输入文本,然后点击提交按钮将其发送到后端。

我在设置这个问题时遇到了麻烦,并且正在寻找一些指针。我有一些代码描述了我一直想做的事情。

    <div class="col-xs-3">

<label>Search Criteria:</label>
<select class="form-control" tabindex="20">
  <option value="0" disabled selected>Select your criteria</option>
  <option value="1">Project Reference</option>
  <option value="2">Service Owner</option>
  <option value="3">Service Name</option>
  <option value="4">Service Abbreviation</option>
  <option value="5">Domain Abbreviation</option>
  <option value="6">Domain Name</option>
</select>
 </div>

  <div class="col-xs-3">
  <label>Search Terms:</label>
    <form name="options" class="form-inline">
  <div class="form-group">
    <input type="text" tabindex="21" class="form-control" placeholder="Search for..." ng-model="mytext" required>
  <button type="submit" tabindex="22" style="color: #ffffff; 
  background-color: #007381;" class="btn btn-default" ng-disabled="options.$invalid"><b>Go </b><b></b><span class="glyphicon glyphicon-chevron-right"></span></button>
   </div>
</form>
  </div>

1 个答案:

答案 0 :(得分:1)

您需要进行多次$ http服务调用。你可以在这样的控制器内完成:

.controller('YourController', function($http) {
  var controller = this;
  this.saveCriteria = function(criteria) {
    $http({method: 'POST', url: '/backend_url_handle_criteria', data: criteria})
    .success(function(data) {
        //do something with data
    }
  };
  this.saveTerm = function(term) {
    $http({method: 'POST', url: '/backend_url_handle_term', data: term})
    .success(function(data) {
        //do something with data
    }
  };
      this.send = function(formdata){
          this.saveCriteria(formdata.criteria);
          this.saveTerm(formdata.term);
      };
});

在你的html中,你声明你的表格是这样的

<form name="yourForm" ng-controller="YourController as yourCtrl" ng-submit="yourCtrl.send(formdata)">