将值放入隐藏输入然后将其置于POST变量中

时间:2015-01-18 15:45:27

标签: html angularjs ng-bind

我正在尝试使用AngularJS从输入字段到另一个隐藏的输入字段(在同一页面中的另一种形式)输入值,因此如果用户在另一个表单上按提交,我可以稍后传输它。

<div ng-app="">

    <p>Name: <input type="text" ng-model="name"></p>
//down the code...
    <form name="whatever" method="post">
        <input type="hidden" ng-bind="name" value="">
    </form>

</div>

当我将数据放入可见输入字段后检查代码时,一切看起来都很好 - 所以当我更改可见输入内的数据时,我也可以在隐藏输入中看到它,但我无法看到它我提交表单后的POST变量 - 我猜它是因为它不会改变隐藏输入中的值字段,只是在和之间。

我怎样才能让它工作,以便我更改隐藏输入的 - 而不是打开和关闭输入字段之间的内容?

2 个答案:

答案 0 :(得分:1)

只需将ng-bind替换为ng-value,如:

<input type="hidden" ng-value="name">

(感谢Himmet Avsar)

答案 1 :(得分:1)

我看到你已经回答了自己。无论如何,你应该采取更多的方式&#34;棱角分明的方式&#34;在处理表单时,让angular执行&#34;发布&#34;。例如:

HTML模板

<body ng-controller="MainCtrl">
  <form name="form1" 
        ng-submit="submit()">
    Name: <input type="text" 
                 class="form-control" 
                 name="name" 
                 ng-model="user.name" 
                 required>
    <div class="alert alert-warning" 
         ng-show="form1.name.$error.required">
         Required field
    </div>
    <input type="submit" 
           class="btn btn-primary" 
           value="submit">
  </form>
  <div class="alert"  
       ng-class="{ 'alert-success': response.status === 200, 'alert-danger': response.status !== 200 }"
       ng-show="response !== null">
    DATA: {{ response.data }}<br>
    HTTP {{ response.status }} {{ response.statusText }} 
  </div>
  <hr>
  <form name="form2" ng-submit="submit()">
    Name: <input type="text" 
                 class="form-control" 
                 ng-model="user.name">
    Age: <input type="number" 
                class="form-control" 
                min="1" 
                max="100" 
                ng-model="user.age">
    <input type="submit" 
           class="btn btn-primary" 
           value="submit" disabled>
  </form>
</body>

的JavaScript

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, $http) {
  $scope.user = {};
  $scope.response = null;

  $scope.submit = function() {
    $scope.response = null;

    $http({
      method: 'POST',
      url: 'http://jsonplaceholder.typifcode.com/posts',
      data: $scope.user,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).then(function (response) {
      $scope.response = response;
    }).catch(function (response) {
      $scope.response = response;
    });
  };
});

你会得到像

这样的东西

imgur

此处相关的plunker http://plnkr.co/edit/M7zQzp