【问题标题】:angularJS : validation pattern should allow ? but should not save to serverangularJS:验证模式应该允许吗?但不应保存到服务器
【发布时间】:2014-06-22 15:14:26
【问题描述】:

请检查我需要显示“??”的示例最初进入文本框。

但是那些“??”不应该保存到服务器意味着它应该保存由正则表达式验证的数据。

为此,我正在分配“??”然而,最初它触发了验证

“??”不显示到文本框。

那么有什么办法解决这个问题呢?

下面是 HTML

<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit()">
<input type="text" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" required>
<span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
<input type="submit" value="submit"/></form></div>

下面是 Javascript

function formCtrl($scope){
$scope.price= "??";
$scope.onSubmit = function(){
    alert("form submitted");
}}

请检查 JsFiddle sample

-谢谢,

瑜伽

【问题讨论】:

  • 为什么不使用placeholder="??" 而不是赋予它无效的值?
  • @user3249448 看看我的回答
  • 感谢您的回复...实际上,一旦文件阅读,价格来自 ICR。如果 ICR 无法从文档中读取价格,那么它会返回“????”由于正则表达式,我无法在文本框中显示。价格将使用“ng-model”动态绑定到文本框,并且我需要支持占位符有问题的 IE8。

标签: regex html angularjs validation


【解决方案1】:

似乎输入在匹配正则表达式之前不会显示

所以试试这个,

HTML 文件,

<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit(price)">
    <input type="text" ng-model="price" required  />
   <span ng-hide="validater">Not a valid number!</span><br>
    <input type="submit" value="submit"/>
</form>
</div>

js文件,

function formCtrl($scope){
    $scope.price= "??";
       $scope.onSubmit = function(price){
       $scope.validater= new RegExp("^\[0-9]{1,7}$").test(price);

        //alert("validater "+ $scope.validater);

        if(!$scope.validater){
              $scope.price= "??";
        }else{
           alert("form submitted");

        }

        return  $scope.validater;       

    }
}

希望这能解决你的问题:)

这是工作演示jsfiddle

【讨论】:

    【解决方案2】:

    尝试这样使用。

    <div ng-app ng-controller="formCtrl">
    <form name="myForm" ng-submit="onSubmit()"> 
    
    <input type="text" ng-model="price" name="price_field" placeholder="Enter a number" ng-pattern="/^[0-9]{1,7}$/" required>
    
    <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
    
    <input type="submit" ng-disabled="myForm.$invalid" value="submit"/></form></div>
    

    在你的 JS 中

    function formCtrl($scope){
    $scope.price= "-1";
    $scope.onSubmit = function(){
        alert("form submitted");
    }}
    

    【讨论】:

      【解决方案3】:

      看看这个。

      Working Demo

      html

      <div ng-app ng-controller="formCtrl">
      <form name="myForm" ng-submit="onSubmit()">
          <input type="text" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" placeholder="??" required >
          <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
          <input type="submit" value="submit"/>
      </form>
      </div>
      

      脚本

      function formCtrl($scope){
          $scope.price= "";
          $scope.onSubmit = function(){
              alert("form submitted");
          }
      }
      

      【讨论】:

      • 感谢您的回复...实际上,一旦文件阅读,价格来自 ICR。如果 ICR 无法读取价格,那么它会返回“????”由于正则表达式,我无法在文本框中显示。价格将使用“ng-model”动态绑定到文本框,并且我需要支持占位符有问题的 IE8。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多