use*_*592 1 angularjs ng-pattern
我正在使用angularjs在文本框上进行客户端验证,我只需要输入字母数字字符.如果文本框保留为空或输入了非字母数字字符,则submitform会向JS发送'false',这是所需的,但问题是它不会传递非字母数字字符本身(在范围内).
JSP文件:
<form name="addressForm" method="post"
ng-submit="submitform(addressForm.$valid)" novalidate>
..
<input ng-model="address" type="text"
**ng-pattern**="/^[a-zA-Z0-9 ]*$/" required="true"/>
Run Code Online (Sandbox Code Playgroud)
JS档案:
$scope.submitform= function(isValid){
var inputAddr = $scope.address;
alert(inputAddr); //coming as undefined
...
Run Code Online (Sandbox Code Playgroud)
现在,当我在jsp的输入框'address'中输入一个字母数字字符时,它给出了我在JS中警告它的未定义(可能是因为过滤char是非字母数字的模式).如果我删除ng-pattern,它会传递submitForm传递'true',就好像每个输入都是"按预期"一样.我想访问$ scope.address的原因是检查和值并显示"空"和"非字母数字"验证的不同错误消息.
任何帮助表示赞赏!
当模型无效时,该值不会分配给模型.如果要查看用户键入的内容,则需要检查$ viewValue:
您必须将name属性添加到输入,因此将输入html更改为:
<input ng-model="address" type="text" name="address"
ng-pattern="/^[a-zA-Z0-9 ]*$/" required="true"/>
Run Code Online (Sandbox Code Playgroud)
并将您的提交功能更改为
$scope.submitform = function(isValid) {
console.log($scope.addressForm.address.$viewValue);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2954 次 |
| 最近记录: |