簡體   English   中英

使用angularjs驗證輸入值

[英]Validate value of input with angularjs

我有一個文本輸入,提取window.location.href的值,查找?=並去除尾隨的值,該值用作輸入值。 我無法通過驗證來檢查=之后是否有值,如果沒有則顯示錯誤。

它正在測試的完整URL是http://localhost:3000/admin/tagger.html?=1234567 ,其中1234567應該是文本框中的值。 如果=后面沒有數字值,則顯示錯誤。

var myApp = angular.module("myApp", []);

myApp.controller("myController", function ($scope, $http) {

$scope.init = function () {
    var url = window.location.href;
    var accountId = url.substr(url.indexOf("=") + 1);
    if ($(".accountNumber").val() !== window.location.href + "?=") {
        alert("ERROR");
    } else {
        $scope.accountNumber = accountId;
    }
}

});

的jsfiddle

如果我正確理解了您的問題,則可以像這樣更改代碼。

$scope.init = function () {
    var url = window.location.href;
    var urlParts = url.split('?=');
    var accountId = urlParts[1];

    if (!accountId) {
        alert("ERROR");
    } else {
        $scope.accountNumber = accountId;
    }
}

如果以其他方式配置路由,則可以將URL更改為: http:// localhost:3000 / admin / tagger / 1234567

您的路由如下所示:

myApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/admin/tagger/:id', {
         templateUrl: '<path to your html template>'
        }
    });
}]);

然后在函數中,可以使用$ routeParams來檢查:id的值,如下所示:

myApp.controller('myController', ['$routeParams', function($routeParams) {
     $scope.init = function() {
        if ($(".accountNumber").val() !== $routeParams.id) {
            alert("ERROR");
        } else {
             $scope.accountNumber = accountId;
        }
}])

或類似的東西。 原理是:您可以通過調用$ routeParams.id(或$ routeParams ['id'])來獲取要檢查的號碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM