【发布时间】:2017-08-03 02:42:48
【问题描述】:
我最近开始研究 AngularJS 1.6。
我正在尝试以编程方式提交表单。原因是我想验证几个字段(必填字段验证)。我花了很多精力(可能是 3-4 小时)试图完成这项工作,但是关于堆栈溢出或 AngularJS 文档的现有答案今天似乎对我有用(奇怪),因此我将其发布为最后的手段.
下面是我的html
<form method="post" id="loginform" name="loginform" ng-submit="loginUser()" novalidate>
<div>
{{message}}
</div>
<div>
<label>User Name</label>
<input type="text" id="txtUserName" ng-model="user.UserName" name="user.UserName" />
</div>
<div>
<label>Password</label>
<input type="text" id="txtPassword" ng-model="user.Password" name="user.Password" />
</div>
<div>
<input type="submit" id="btnLogin" title="Save" name="btnLogin" value="Login" />
</div>
</form>
我的角码
var demoApp = angular.module('demoApp', []);
demoApp.controller("homeController", ["$scope", "$timeout", function ($scope, $timeout) {
$scope.loginUser = function () {
var form = document.getElementById("loginform");
//var form = $scope.loginform; - tried this here...
//var form = $scope["#loginform"]; tried this
//var form = angular.element(event.target); - tried this...
// tried a lot of other combinations as well...
form.attr("method", "post");
form.attr("action", "Home/Index");
form.append("UserName", $scope.user.UserName);
form.append("Password", $scope.user.Password);
form.append("RememberMe", false);
form.submit();
};
}]);
我不断收到错误“attr”不是函数。
我只需要使用 post 方法提交带有值的表单。就在此之前,我试图拦截提交调用并检查验证。
我也愿意尝试任何其他方法。比如把输入类型从submit改成button。将输入放在表单之外。如果验证和提交两者都可以以任何方式发生,我会非常高兴。我只是希望它在客户端验证后发回值,然后服务器将处理重定向。
注意:我希望表单进行完整的回发,以便将其重定向到另一个表单。 (我知道我可以使用 Ajax,但改天可能会!)
【问题讨论】:
-
你需要什么验证
-
@bharatsavani savani 简单的必填字段验证,现在
-
好的,首先在你的 loginuser 函数中删除 form.attr 在表单标签中添加操作
-
就是这样做的,它回发,但不携带模型值。
-
我应该手动附加表单字段吗?
标签: javascript html angularjs asp.net-mvc postback