Я использую приведенный ниже фрагмент кода для проверки правильности формата номера телефона, а затем пытаюсь установить отформатированное значение для текущего элемента ввода.Но после выпуска 18-го лета я не могу установить ввод с новым отформатированным значением.
TestApp
<aura:application extends="force:slds">
<lightning:input type="text" label="Num" aura:id="ele" onchange="
{!c.changeNum}" />
</aura:application>
Контроллер:
({
changeNum : function(component, event, helper) {
helper.changeNum(component, event);
}
})
Помощник:
({
changeNum : function(component, event) {
var element = event.getSource();
var phonenumber = element.get("v.value");
if(phonenumber){
var updatedValue = phonenumber.replace(/-/g, "");
if(/^\d{10}$/.test(updatedValue)){
phonenumber = updatedValue.match(new RegExp('\\d{4}$|\\d{3}', 'g')).join("-");
}
else{
var x = phonenumber.replace(/[^0-9._-]/g, "").replace(/ +/, " ");
phonenumber = x;
if(!/^[0-9-]+$/.test(phonenumber.slice(-1))){
phonenumber = phonenumber.slice(0, -1);
}
}
}
console.log(phonenumber);
element.set('v.value', phonenumber);
}
})
element.set не может обновить отформатированное значение.Элемент молниеносного ввода все еще может принимать алфавиты.