【问题标题】:How to submit an option and text input form with AngularJS如何使用 AngularJS 提交选项和文本输入表单
【发布时间】:2017-01-06 20:23:25
【问题描述】:

我是设置表单的新手,我需要能够将两个单独的值提交到不同服务器上的 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>

【问题讨论】:

标签: java html angularjs forms


【解决方案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)">

【讨论】:

  • 感谢您的回复。所以基本上像下面这样的表单标签围绕着选择和输入,然后他们需要saveTermsaveCriteriaid 来匹配它们。该网址将是我希望将数据发送到的位置,对吗?
  • 我忘了补充一点,然后它会从 Java 后端返回一个 JSON 响应。一旦提交请求,这也应该发生。 GET 可能也适合那里吗?
  • 1 - 是的,类似的。您可以拥有一个带有术语和条件作为属性的 javascript 对象。 $http 服务中的 url 是您的后端服务 url。 2 - 如果您愿意,可以使用 GET。我建议您阅读有关 $http 服务、promise (.success, .then ...) 和表单的 ng-model 指令
猜你喜欢
  • 2016-08-05
  • 2017-02-24
  • 2014-10-23
  • 2013-05-03
  • 1970-01-01
  • 2013-03-14
  • 2017-08-03
  • 2015-02-19
  • 2018-09-15
相关资源
最近更新 更多