Я начал проект Aurelia, и я решил использовать this plugin, чтобы включить маскировку ввода для телефонных номеров, используя реализацию, аналогичную той, что видна в this post.Плагин jQuery не работает с Aurelia только в Firefox
Он отлично работает в 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">
Я попытался удалить атрибут шаблона и изменить его на обычный ввод текста, но безрезультатно. Я действительно почесываю голову на этом. Любые идеи или предложения были бы весьма признательны.
Я не понимаю. Если я скопирую ваш код, тогда, когда я нахожу (или фокусирую) над элементом ввода, появляется валюта слова, но вход не редактируется, а это означает, что он не отвечает на ввод какого-либо значения. –
Я думаю, это потому, что вы запустили jquery.inputmask.numeric.js в своем менеджере зависимостей. Вот как я это сделал с помощью JSPM (в ключе «map» в config.js): '' jquery.inputmask ":" npm: [email protected] ", " jquery.inputmask.numeric " : "npm: [email protected]/dist/inputmask/inputmask.numeric.extensions.js", ' – antonmos
Я на самом деле f * придумал что-то еще ... Спасибо за помощь в любом случае :) –