Я пытаюсь создать форму на веб-странице, где Javascript / Jquery будет выполнять проверку формы на стороне клиента. Мне нужно, чтобы он не только проверял, заполнены ли обязательные поля, но и правильно ли они заполнены (т. Е. Номера телефонов отформатированы 000-000-0000, в письмах есть @ example.com в конце и два имени вводятся вполе имени). Я пытался найти пример кода в Интернете, но код, который я нашел, в основном сломал то, что у меня уже было. Вот код для одного поля формы:
HTML:
<div class="contactForm">
<label for="phone">Phone: </label>
<div id="errorphone" class="error"></div>
<input type="phone" name="phone" id="phone" placeholder="000-000-0000" required>
</div>
Javascript:
$("document").ready(function(){
console.log("Loaded");
$("#submit").click(function(){
checkPhone();
});
$("#phone").change(function(){
console.log("Something in phone changed");
checkPhone();
});
function checkPhone(inputtxt){
var phoneno = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if($.trim($("#phone").val())==""){
$("#errorphone").html("<p>You missed your phone number</p>");
$("#errorphone").addClass("showerror");
}
else if((inputtxt.value.match(phoneno)==false){
$("errorphone").html("<p>Please enter your number in the format 000-000-0000</p>");
$("#errorphone").addClass("showerror");
}
else{
$("#errorphone").html("");
$("#errorphone").removeClass("showerror");
}
}
Javascript использовал для работы, чтобы проверить, было ли поле пустым или нет, но когда я попытался добавить код, чтобы проверить правильность форматирования, все Javascript прекратил работать. Вот моя оригинальная функция checkPhone, прежде чем я попытался добавить проверку форматирования:
function checkName(){
if($.trim($("#name").val())==""){
$("#errorname").html("<p>You missed your name</p>");
$("#errorname").addClass("showerror");
}
else{
$("#errorname").html("");
$("#errorname").removeClass("showerror");
}
}
Я использую Sublime, а оператор else в текущем Javascript не окрашен должным образом, поэтому я предполагаю, чтоПроблема может быть связана с синтаксисом, потому что кажется, что оператор else больше не распознается. Но, честно говоря, я даже не уверен, правильно ли я отформатирую валидацию, и уверен, что есть более простой способ сделать валидацию полностью. Я также заметил, что текущая версия checkPhone имеет inputtxt в качестве условия, но тип ввода для поля указан как phone. Может быть, в этом проблема?
В любом случае, любая помощь в методе, который я использую, и как поступить, будут великолепны.