Проверка input на английские символы
Простая отправка формы ajax, но я никак не могу прикрутить проверку на символы.
Я хочу проверить, чтобы input не был пустым и был заполнен только русскими символами - и только в этом случае отправлять письмо.
<input type="text"
name="name"
id="contname" value=""
placeholder="Контактное лицо" />
function AjaxFormRequest1(evt, result_id, formf, url) {
console.log("Event type: ", evt.type);
evt.preventDefault();
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
data: jQuery("#" + formf).serialize(),
success: function(response) {},
error: function(response) {}
});
$(':input', '#formf')
.not(':button, :submit, :reset, :hidden')
.val('')
}
Я пробовал этот код, но он работает только при вводе руками, а если робот вводит - то не работает.
$('#сontname').on('input', function() {
let uName1_testA = /[^a-zA-Z]/g.test(uName1);
if (uName1_testA === true) {
$('#uNameMessageID').text("error")
} else if (uName1_testA === false) {
$('#uNameMessageID').text('');
}
});
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
а если робот вводит - то не работает.
Можно использовать переопределение сеттера и геттера, свойства value у нужного элемента input...
(o => {
const desc = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value");
Object.defineProperty(o, "value", {
get: desc.get,
set(v) {
console.log("Записали значение", v)
desc.set.call(this, v)
}
})
})(contname);
contname.addEventListener('input', e => {
console.log("Ввели значение", e.target.value)
})
test.addEventListener('click', _ => {
contname.value = Math.floor(Math.random() * 100)
})
<input type="text" name="name" id="contname" value="" placeholder="Контактное лицо" />
<button id='test'>Запись данных скриптом</button>