我正在尝试使用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变量 - 我猜它是因为它不会改变隐藏输入中的值字段,只是在和之间。
我怎样才能让它工作,以便我更改隐藏输入的值 - 而不是打开和关闭输入字段之间的内容?
答案 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;
});
};
});
你会得到像
这样的东西
此处相关的plunker http://plnkr.co/edit/M7zQzp