Angularjs驗(yàn)證用戶輸入的字符串是否為日期時(shí)間
在angularjs中,想在文本框中,驗(yàn)證用戶輸入的字符串是否為日期時(shí)間。
剛開始時(shí),Insus.NET想到的是正則,這只是驗(yàn)證到日期與時(shí)間的格式是否正確而已,而對于2月最后一天或是30或是31號,還是無能為力。
因此,Insus.NET想使用angularjs的自定義指令來驗(yàn)證解決此問題。
在ASP.NET MVC的項(xiàng)目中,創(chuàng)建一個(gè)控制器,并創(chuàng)建一個(gè)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
};
}
}
}
接下來,你可以寫Directive了,那是一個(gè)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;
};
}
}
});
html的input應(yīng)用此angularjs的屬性:

演示:

以上所述是小編給大家介紹的Angularjs驗(yàn)證用戶輸入的字符串是否為日期時(shí)間,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
實(shí)踐中學(xué)習(xí)AngularJS表單
表單是最常用的一種組建。在Angular.js中,其實(shí)并沒有單獨(dú)的為表單添加多少特殊功能。但是,利用Angular.js框架本身的特點(diǎn),可以更友好的呈現(xiàn)表單。下面將介紹幾種常用的功能在Angular中是如何巧妙實(shí)現(xiàn)的2016-03-03
利用angular自動(dòng)編譯andriod APK的繞坑經(jīng)歷分享
這篇文章主要給大家介紹了關(guān)于如何利用angular自動(dòng)編譯andriod APK的繞坑經(jīng)歷,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用angular具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
利用Angularjs和原生JS分別實(shí)現(xiàn)動(dòng)態(tài)效果的輸入框
現(xiàn)在的很多網(wǎng)站都將輸入框做成了動(dòng)態(tài)的效果,這樣對于用戶體檢來說非常好,這篇文章分別用Angularjs和原生JS兩種方法來實(shí)現(xiàn)動(dòng)態(tài)效果的輸入框,具有一定的參考價(jià)值,有需要的小伙伴們可以來參考借鑒。2016-09-09
AngularJS基礎(chǔ) ng-class-odd 指令示例
本文主要介紹AngularJS ng-class-odd 指令,這里對ng-class-odd基礎(chǔ)知識(shí)做了詳細(xì)整理,并有示例代碼和效果圖,學(xué)習(xí)AngularJS的同學(xué)可以參考下2016-08-08
對angularJs中2種自定義服務(wù)的實(shí)例講解
今天小編就為大家分享一篇對angularJs中2種自定義服務(wù)的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
AngularJS使用ng-repeat遍歷二維數(shù)組元素的方法詳解
這篇文章主要介紹了AngularJS使用ng-repeat遍歷二維數(shù)組元素的方法,結(jié)合實(shí)例形式分析了AngularJS二維數(shù)組元素遍歷的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
詳解如何構(gòu)建Angular項(xiàng)目目錄結(jié)構(gòu)
本篇文章主要介紹了詳解如何構(gòu)建Angular項(xiàng)目目錄結(jié)構(gòu),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07

