angular验证的小白问题

yaotomo 2017-01-17 10:49:34
需求很简单,在页面点击登录按钮,如果用户名或密码为空,就alert提示用户
前几天学过form验证,现在我没有使用表单,仅仅是两个文本框使用ajax验证
用户名和密码的ng-model分别是data.username和data.password
但是在js代码中 console.log($scope.data.username,$scope.data.password)得到的值为undefined
即使用户名和密码框都输入了值也是undefinded
而且同一次点击,console.log得不到值,下面post提交的$scope.data.username和$scope.data.password却有值

前台login.aspx

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>系统登录</title>
<link href="styles/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="styles/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body { margin-top:50px; }
</style>
</head>
<body>
<div ng-app="loginApp">
<div class="container" ng-controller="loginController">

<div class="form-horizontal login-box">
<div class="form-group">
<div class="col-sm-2"><label class="control-label" for="txtUsername">用户名</label></div>
<div class="col-sm-10">
<input type="text" id="txtUsername" class="form-control" placeholder="用户名" ng-model="data.username">
</div>
</div>
<div class="form-group">
<div class="col-sm-2"><label class="control-label" for="txtUsername">密码</label></div>
<div class="col-sm-10">
<input type="password" id="txtPassword" class="form-control" placeholder="密码" ng-model="data.password">
</div>
</div>
<div class="form-group">
<div class="col-sm-12 text-right">
<button type="button" class="btn btn-primary" ng-click="login()">登录</button>
</div>
</div>
</div>
</div>
</div>
<script src="scripts/angular.min.js" type="text/javascript"></script>
<script src="scripts/login.js" type="text/javascript"></script>
</body>
</html>


JS代码login.js

var app = angular.module("loginApp", [])
.controller("loginController", ["$scope", "$http", function ($scope, $http) {
$scope.login = function () {
$scope.data = {};
console.log($scope.data.username,$scope.data.password);
// if($scope.data.username == undefined || $scope.data.password == undefined){
// alert("用户名和密码不能为空!");
// return false;
// }
$http({
method : "POST",
url : "../handlers/LoginHandler.ashx",
params : { username : $scope.data.username , password : $scope.data.password }
}).then(function successCallback(response){
if(response.data == 0){
alert("用户名或密码错误!");
}else{
location.href = "index.aspx";
}
},function errorCallback(){

});
}
} ]);
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2017-01-17
  • 打赏
  • 举报
回复
引用 5 楼 Chinajiyong 的回复:
自己看这篇文章吧 http://blog.csdn.net/findmyself_for_world/article/details/45534635
是不是这样理解 以前我是在form里指定一个action 现在ng-submit指定一个js方法来提交表单数据,在这个方法里所有的表单数据都保存在$scope.formdata里(这个名字是自己定义的),这样就能实现ajax提交了 至于前台验证,使用ng-show,myForm.username.$error.pattern之类的表单验证方式实现,但是这样怎么实现弹出窗口提示用户呢?
EnForGrass 2017-01-17
  • 打赏
  • 举报
回复
yaotomo 2017-01-17
  • 打赏
  • 举报
回复
引用 2 楼 qq_17486399 的回复:
这是我写的一个登录的JS
谢谢,其实我就是想脱离jq,不使用jq或angular自带的element()来取元素
yaotomo 2017-01-17
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
另外,验证的话用Angular来验证,参考 http://www.runoob.com/angularjs/angularjs-validation.html http://www.cnblogs.com/rohelm/p/4033513.html
谢谢,原来是作用域的问题 我没有使用表单,所以不能用angular的表单验证吧 使用表单验证怎么用ajax方式提交呢
大鱼> 2017-01-17
  • 打赏
  • 举报
回复

这是我写的一个登录的JS
EnForGrass 2017-01-17
  • 打赏
  • 举报
回复
$scope.data = {};这句话不要放到login方法里面,放外面去

var app = angular.module("loginApp", [])
   .controller("loginController", ["$scope", "$http", function ($scope, $http) {
        $scope.data = {};
       $scope.login = function () {       
           console.log($scope.data.username,$scope.data.password);    
       	  // if($scope.data.username == undefined || $scope.data.password == undefined){
          //    alert("用户名和密码不能为空!");
          //    return false;
          // }          
       	  $http({
             method : "POST",
             url : "../handlers/LoginHandler.ashx",
             params : { username : $scope.data.username , password : $scope.data.password }    
          }).then(function successCallback(response){
                if(response.data == 0){
                   alert("用户名或密码错误!");
                }else{
                  location.href = "index.aspx";
                }
          },function errorCallback(){

          });
       }
   } ]);
另外,验证的话用Angular来验证,参考 http://www.runoob.com/angularjs/angularjs-validation.html http://www.cnblogs.com/rohelm/p/4033513.html

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧