zoukankan      html  css  js  c++  java
  • 验证用户输入的字符串是否为日期时间

    在angularjs中,想在文本框中,验证用户输入的字符串是否为日期时间。

    刚开始时,Insus.NET想到的是正则,这只是验证到日期与时间的格式是否正确而已,而对于2月最后一天或是30或是31号,还是无能为力。

    因此,Insus.NET想使用angularjs的自定义指令来验证解决此问题。

    在ASP.NET MVC的项目中,创建一个控制器,并创建一个Action:

    控制器源代码:

    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace Insus.NET.Controllers
    {
        public class CommonsController : Controller
        {
            public JsonResult ValidateDate(string date)
            {
                object _Data;
    
                DateTime dt;
                if (DateTime.TryParse(date, out dt))
                {
                    _Data = new { result = true };
                }
                else
                {
                    _Data = new { result = false };
                }
    
                return new JsonResult
                {
                    Data = _Data,
                    ContentEncoding = System.Text.Encoding.UTF8,
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
        }
    }
    Source Code


    接下来,你可以写Directive了,那是一个js文件:



    validateDate的angularjs代码:

    airExpressApp.directive('validateDate', function ($http, $q) {
        return {
            restrict: 'AE',
            require: 'ngModel',
            link: function ($scope, element, attributes, ngModelController) {
                ngModelController.$asyncValidators.dataValid = function (modelValue, viewValue) {
                    var deferred = $q.defer();
    
                    var obj = {};
                    obj.date = modelValue;
                    $http({
                        method: 'POST',
                        url: '/Commons/ValidateDate',
                        dataType: 'json',
                        headers: {
                            'Content-Type': 'application/json; charset=utf-8'
                        },
                        data: JSON.stringify(obj),
                    }).then(function (response) {
                        if (ngModelController.$isEmpty(modelValue) || response.data.result) {
                            deferred.resolve();
                        } else {
                            deferred.reject();
                        }
                    });
                    return deferred.promise;
                };
            }
        }
    });
    Source Code


    html的input应用此angularjs的属性:


     演示:

  • 相关阅读:
    2019年牛客多校第一场 E题 ABBA DP
    2019年牛客多校第一场 B题 Integration 数学
    Codeforces Round #574 (Div. 2)题解
    Justice(HDU6557+2018年吉林站+二进制)
    Strength(HDU6563+2018年吉林站+双指针瞎搞)
    Lovers(HDU6562+线段树+2018年吉林站)
    The Tower(HDU6559+2018年吉林站+数学)
    Good Numbers(HDU5447+唯一分解)
    [iOS]C语言技术视频-01-变量的定义
    [Unity]Unity开发NGUI代码实现ScrollView(放大视图)
  • 原文地址:https://www.cnblogs.com/insus/p/6923845.html
Copyright © 2011-2022 走看看