我正在尝试在表单提交时添加电话验证。主要目标是:如果电话开始时不是“39”或“+39”,请在号码前添加此号码并提交。代码是通过脚本管理器在 body 标记之后添加的。但它不适用于提交。而且我在浏览器控制台中没有任何错误。
<form action="some.php" method="POST">
<div class="fields">
<div class="lp-pom-form-field single-line-text" id="container_nome">
<label class="main lp-form-label" for="nome" id="label_nome" style="height: auto;">
<span class="label-style">Nome e Cognome *</span>
</label>
<input type="text" id="nome" name="nome" placeholder="" class="ub-input-item single text form_elem_nome">
</div>
<div class="lp-pom-form-field single-line-text" id="container_telefono">
<label class="main lp-form-label" for="telefono" id="label_telefono" style="height: auto;">
<span class="label-style">Telefono *</span>
</label>
<input type="text" id="telefono" name="telefono" placeholder="" class="ub-input-item single text form_elem_telefono">
</div>
</div>
</form>
window.onload = function() {
var mainForm = document.forms[0];
mainForm.addEventListener("submit", function validPhone() {
var re = /^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$/;
var myPhone = '';
var element = document.getElementById('telefono');
if (element != null) {
myPhone = element.value;
}
else {
myPhone = null;
}
var myPhoneTrim = myPhone.trim().replace(/\s|\-|\(|\)/g, "");
var valid = re.test(myPhoneTrim);
if (myPhoneTrim.startsWith("39")) {
myPhoneTrim = "+" + myPhoneTrim;
} else if (!myPhoneTrim.startsWith("39") && !myPhoneTrim.startsWith("+39")) {
myPhoneTrim = "+39" + myPhoneTrim;
}
return valid;
});
}