在我看来,有两种形式(一种是可见的,另一种是隐藏的)。第一个作为动作调用控制器中的submit1()
函数,反过来将调用document.getElementById('form2').submit();
第二个表单动作具有直接调用php的方法POST
。
现在我无法理解为什么我的submit1()
看起来像这样:
function submit1()
{
// doesnt matter
$scope.first = 'this is my string'; // here I'm modifying variable from $scope1 that is directly in form2
document.getElementById('form2').submit(); // problem here!
// doesn't matter
}
它没有按预期工作。
基本上,当发送form2
时,它仍然具有默认值(未更改)。
看起来它不会真正改变函数submit1()
范围之外的变量,或者POST
不会接受此更改。任何人都可以告诉我为什么会这样?
此外,我以前使用$ http post方法而不是document.getElement().submit()
,它运行正常。所以这似乎很奇怪。
我很感激这方面的任何帮助。 谢谢!
Edit1 :(添加更多代码以正确定义问题):
view:
<div class="container">
<div ng-hide="true" >
<form action="./order2.php" id="form2" method="POST">
<input type="text" name="username" value="{{username}}"/>
<input type="text" name="phone" value="{{phone}}"/>
<input type="text" name="address" value="{{address}}"/>
<input type="text" name="price" value="{{totalPrice}}"/>
<input type="text" name="email" value="{{email}}"/>
<input type="text" name="message" value="{{text}}"/>
<input type="submit"/>
</form>
</div>
<form novalidate id="contact-form" name="contactForm">
<a class="btn btn-success" ng-click="submit1()" href>
<i class="fa fa-check-circle-o fa-lg"></i>
{{ 'ID_ORDER_BUTTON' | translate:$root.currentLang }}
</a>
</form>
</div>
控制器:
Appcontrollers.controller('controller1', function($scope, $http, $rootScope, $timeout, $routeParams, $window, $location, databaseService, translationService, cartService, leatherService, $location) {
$scope.text="";
$scope.email="11111@2222.com";
$scope.price=0;
$scope.address= "add";
$scope.phone="1213131";
$scope.username="usera";
$scope.submit1 = function() {
$scope.price=999999999; // this looks like doesn't have effect.
document.getElementById('form2').submit();
}
}