#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Я использую плагин jQuery Steps (ССЫЛКА ЗДЕСЬ). Проблема заключается в одном из операторов IF, который возвращает wizzard к первому шагу (не на шаге, который в данный момент проиндексирован). Все операторы IF работают корректно, ожидайте этого. Что, если statemnt проверяет, указан ли номер телефона в правильном формате:
Вот код:
onFinishing: function (event, currentIndex) {
var filter = /^(([^<>()[]\.,;:s@"] (.[^<>()[]\.,;:s@"] )*)|(". "))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9] .) [a-zA-Z]{2,}))$/;
if (!filter.test($("#email").val())) {
$("#emailError").text("e-mail is wrong");
return false;
}
if (!filter.test($("#email2").val())) {
$("#email2Error").text("e-mail is wrong");
return false;
}
var newnum = parseInt($("#numppl").val());
if(Math.floor(newnum) != newnum amp;amp; !$.isNumeric(newnum)){
$("#numpplError").text("Number error");
return false;
}
if (!($("#numppl").val() >= 1 amp;amp; $("#numppl").val()<=10)){
$("#numpplError").text("Number error");
return false;
}
if ($("#email").val()!=($("#email2").val())){
$("#email2Error").text("address don't match");
return false;
}
/*IF Statment bellow is bugged */
if ($("#phone").length) {
if(!$("#phone").match(/^[ ]?([d]{0,3})?[(.-s]?([d]{3})[).-s]*([d]{3})[.-s]?([d]{4})$/)){
$("#phoneError").text("Wrong format");
return false;
}
}
return true;
},
Ответ №1:
Внесите исправление в оператор IF, который вы прокомментировали как ошибку :
pval = $("#phone").val(); //Store the value of "Phone"
if (pval.length) { //Check for non empty
if(!pval.match(/^[ ]?([d]{0,3})?[(.-s]?([d]{3})[).-s]*([d]{3})[.-s]?([d]{4})$/)) { // Check format.
$("#phoneError").text("Wrong format");
return false;
}
}
Ответ №2:
$("#phone").length
не совпадает с длиной телефонного номера
несмотря на $("#phone").length
использование ($("#phone").val()).length
аналогично, несмотря на $("#phone").match(regular Expression)
использование
($("#phone").val()).match(regular Expression)