Вы можете поэкспериментировать с setCustomValidity()
из input
элементов (https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement) из обработчика onblur
, onchange
или oninput
. Если вы не удовлетворены значением, установите ошибкусообщение и пустая строка в противном случае. Если для сообщения об ошибке задано непустое значение, оно отображается и форма отказывается отправлять:
function check5() {
cgiftcardq.setCustomValidity(cgiftcardq.value.endsWith('5')?"Nope, it can not end with 5":"");
}
<form>
<input name="cgiftcardq" class="text_field" id="cgiftcardq" size="3" autocomplete="off" type="text" onblur="check5()">
<input type="submit" value="Send">
</form>
(Фрагменты StackOverflow мешают отправке формы - вероятно, как часть безопасности - поэтому успешная отправка просто приводит к исчезновению формы)
Поскольку setCustomValidity()
не работает везде (согласно таблице совместимости , он не будет работать на мобильных телефонах, отличных от Andorid), можно упомянуть и классическое «бюджетное» решение: вы можете просто отключить кнопку отправкиесли вы не удовлетворены вводом:
function check5() {
if(cgiftcardq.value.endsWith('5')){
send.disabled=true;
message.innerHTML="Nope, it can not end with 5";
} else {
send.disabled=false;
message.innerHTML="OK";
}
}
<form>
<input name="cgiftcardq" class="text_field" id="cgiftcardq" size="3" autocomplete="off" type="text" oninput="check5()">
<input id="send" type="submit" value="Send" disabled>
</form>
<div id="message"></div>