我已经开始了Aurelia项目,并且选择使用this plugin以使用类似于this post中所见的实现方式为电话号码启用输入掩码。jQuery插件仅在Firefox中与Aurelia无关
它可以在Chrome和Safari中正常工作 - 但是,它只是在Firefox中无法正常工作。没有错误或其他有用的信息。上述联演示页的工作例子就好了,但是,我敢肯定,这一定有什么我的执行:
JS:
import {inject, NewInstance} from 'aurelia-dependency-injection';
import {ValidationController, ValidationRules, validateTrigger} from 'aurelia-validation';
import 'igorescobar/jQuery-Mask-Plugin'
@inject(NewInstance.of(ValidationController))
export class MyForm {
async activate(params, routeConfig) {
// do stuff if there are route parameters
}
bind() {
$('#PhoneNumber').mask('(000) 000-0000');
}
constructor(controller) {
this.controller = controller;
this.controller.validateTrigger = validateTrigger.manual;
}
submit() {
this.controller.validate()
.then(errors => {
if (errors.length === 0) {
// do a thing
} else {
// do something else
}
});
}
}
ValidationRules
.ensure('phoneNumber').displayName('Phone number')
.minLength(10).withMessage('Phone number must be at least 10 characters')
.maxLength(14).withMessage('Phone number is too long')
.matches(/[(][0-9]{3}[)] [0-9]{3}-[0-9]{4}/).withMessage('Please provide a valid phone number')
.on(MyForm);
HTML
<input class="form-control" id="PhoneNumber" type="tel" minlength="10" maxlength="14" pattern="[(][0-9]{3}[)] [0-9]{3}-[0-9]{4}" value.bind="phoneNumber & validate" required="required">
我试过删除模式属性,并将其更改为常规文本输入,无济于事。我真的在这个问题上挠头。任何想法或建议将不胜感激。
我不明白。如果我复制代码,那么当我将鼠标悬停(或聚焦)到输入元素上时,会显示单词currency,但输入不可编辑,这意味着它不响应输入任何值。 –
我认为这是因为您确实在您的依赖关系管理器中使用了jquery.inputmask.numeric.js。 以下是我如何使用JSPM(在config.js中的'map'键中): '“jquery.inputmask”:“npm:[email protected]”, “jquery.inputmask.numeric” :“npm:[email protected] /dist/inputmask/inputmask.numeric.extensions.js”,' – antonmos
我实际上还有其他东西......感谢您的帮助:) –