2013-06-28 5 views
0

Я пишу процедуру, которая проверяет ввод. он работает нормально, но когда я вводим символ, тогда он просто принимает. вот мой код.Проверка ввода по javascript

function isValidPhoneNumber(val) { 
     var flag = true; 
     var invalidChars = "[email protected]!$#"; 
     if (flag) { 
      for (index = 0; index <= val.length - 1; index++) { 
       var phchars = val.substring(index, index + 1); 
       if (invalidChars.indexOf(phchars) > 0) { 
        flag = false; 
        break; 
       } 
      } 
     } 
     return flag; 
    } 

Предположим, если я дал val = '+ 9122a5669974', тогда он вернется. индекс функции не может найти a .... почему. скажите, пожалуйста, что не так в рутине. если какой-либо признак, который существует в переменной invalidChars, тогда процедура должна возвращать значение false, но когда найденная тогда процедура возвращает true. помогите мне поймать ошибку. спасибо

+3

использовать регулярные выражения VOR таких упражнений –

+0

Для получения информации о регулярные выражения в JavaScript вы можете проверить здесь [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions] и [здесь] (http://www.w3schools.com /jsref/jsref_obj_regexp.asp). Вы можете протестировать и иметь скрипку с ними на [RegExr] (http://gskinner.com/RegExr/), а w3schools имеет короткий набор [примеров] (http://www.w3schools.com/js/js_obj_regexp. asp), показывая вам, как их использовать. –

ответ

2

Ваша линия

if (invalidChars.indexOf(phchars) > 0) { 

должен быть

if (invalidChars.indexOf(phchars) > -1) { 

однако, я хотел бы посмотреть использовать регулярные выражения в качестве лучшего подхода.

2

Пожалуйста, попробуйте ввести код с кодом.

if (invalidChars.indexOf(phchars) != -1) { 
1

попробовать этот способ,

jQuery.validator.addMethod("mobileNL", function(value, element) { 
return this.optional(element) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\- \s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(value); 
}, "Please specify a valid mobile number"); 

Упомянутый метод доступен в дополнительных-methods.js

Это весело, используя JQuery плагин проверки для проверки на стороне клиента. Важно отметить, что вы можете добавить к нему свой собственный метод.

  1. Скачать & Добавить следующий скрипт мастер, макет или туда, куда вы хотите, чтобы включить проверку на стороне клиента.

    1.1 JQuery-1.8.3.min.js (или выше) Ссылка: http://code.jquery.com/jquery-1.8.3.min.js

    1.2 jquery.validate.min.js & дополнительные-methods.js (http://jqueryvalidation.org/)

2 . Теперь создайте правило проверки &. Например,

var jq = jQuery.noConflict(true); 
(function ($) { 
$(document).ready(function() { 

    $('#FormName').validate({ 
     highlight: function (element, errorClass, validClass) { 
      $(element.form).find("input[id=" + element.id + "]").addClass("input"); 

     }, 
     rules: { 
      PhoneNumber: { 
       required: false, 
       mobileNL: true, 
       max: 10 
      } 

     }, 
     messages: { 
      PhoneNumber: { 
       mobileNL: "Please enter a correct phone", 
       max: "Please specify the number less or equal to 10" 
      } 

     }, 
     submitHandler: function (form) { 
      form.submit(); 
      return false; 
     } 
    }); 
}); 
})(jq); 

Создать новый файл js, сохраненный как jq_validation.js, добавить вышеуказанный код. И назвать его в таком порядке

  1. Ваш HTML должен быть, как это и сделано.

    "<%: Html.TextBoxFor (модель => model.PhoneNumber, новый {@class = "вход"})%>"

+0

как назвать этот метод? вы можете показать. как работает вышеупомянутое регулярное выражение ... какой символ он примет. спасибо – Thomas

+0

Вы можете изменить регулярное выражение в соответствии с вашим номером телефона. Или дайте мне знать ваш формат номера телефона, может помочь вам написать регулярное выражение. – AnandMohanAwasthi

+0

спасибо ... работа выполнена. – Thomas