对于所有类型为url的输入字段(input [type = url]),on blur我想检查输入的值是否包含http://或https://以及是否不添加http://到用户输入值的开头。类似于下面的jquery:
$('.txtUrl').blur(function(e) {
if ($(this).val().match(/^http/) || $(this).val().match(/^https/)) {
$.noop()
}
else {
// get value from field
var cur_val = $(this).val();
// do with cur_val
$(this).val('http://' + cur_val);
}
});
我如何以棱角分明的方式做到这一点?
答案 0 :(得分:1)
您可以使用angular指令执行相同的功能。
定义ng-model
来处理ng-model
值。
<强>标记强>
<input type="url" my-directive ng-model="myUrl"/>
<强>指令强>
app.directive('myDirective', function() {
return {
restrict: 'AE',
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
var model = $parse(attrs.ngModel)
element.on('blur', function(e) {
var value = ctrl.$modelValue; //ngModel Value
if (value.match(/^http/) || value.match(/^https/)) {
angular.noop()
} else {
// assign value to $modelValue
model.assign(scope, 'http://' + value);
}
});
}
}
});
这可以帮到你,谢谢。