jQuery Steps插件的奇怪行为

时间:2014-07-04 19:02:29

标签: javascript jquery html

我正在使用jQuery Steps插件(LINK HERE)。问题在于一个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 && !$.isNumeric(newnum)){
                            $("#numpplError").text("Number error");
                            return false;
                            }
                            if (!($("#numppl").val() >= 1 && $("#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; 
                             }, 

2 个答案:

答案 0 :(得分:0)

在您评论为错误的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;
                               }
                         }

答案 1 :(得分:0)

$("#phone").length与电话号码的长度不同

尽管$("#phone").length使用($("#phone").val()).length

同样可以使用$("#phone").match(regular Expression)

($("#phone").val()).match(regular Expression)