Вот полезный способ, который также может обрабатывать вставку
Вы не должны ajax немедленно. Либо откликнись, либо жди ввода
const re = /[^0-9a-zA-Z]+/g
$(document).on('input', '.childfield', function(e) {
let val = this.value;
if (re.test(val)) {
console.log("invalid input")
this.value=val.replace(re,"")
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="childfield" value="0">
Отправка при вводе
const re = /[^0-9a-zA-Z]+/g
$(function() {
$(document).on('input', '.childfield', function(e) {
let val = this.value;
if (re.test(val)) {
console.log("invalid input")
this.value = val.replace(re, "")
}
});
$("#form1").on("submit", function(e) {
e.preventDefault(); // stop submitting
if (re.test($("#form1 .childField").val())) { // not even possible but still
return;
}
// $.ajax()... // here you can send
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form1">
<input type="text" class="childfield" value="0" />
</form>