2012-01-18 5 views
0

Я проверяю значение поля ввода так, чтобы it should contain only digit,.,-,/, если в любой момент пользователь вводит любую вещь, допускается разрешенный символ, тогда только этот символ должен быть удален.Как удалить символы, когда пользователь вводит javascript

ex. если я набрал первоначально 12/12/then a, тогда только a должен быть удален из текстового поля не целая строка 12/12.

то, что я попытался так far.-

<input type="text" onkeyup="isValidDate(this);"/> 
function isValidDate(f){ 
    var re =/^[\d\/\.-]+$/; 
    if (!re.test(f.value)) { 
    alert("called"); 
    f.value = f.value.replace(/^[\d\/\.-]+$/g,""); 
    } 
} 

я получаю предупреждение, но ООН хочет значение не получает удалены.

Как я могу это сделать, используя скрипт java?

+1

Проверьте этот очень популярный вопрос здесь: [Ввод текста HTML допускает только числовой ввод] (http://stackoverflow.com/questions/469357/html-text-input-allow-only-numeric-input) – DOK

ответ

2

Вы должны быть в состоянии добавить return перед вызовом функции.

Затем в javascript возвращает false, если символ нежелателен.

Вот что я хотел бы сделать ниже.

<input type="text" onkeyup="return isValidDate(this);"/> 
function isValidDate(f){ 
    var re =/^[\d\/\.-]+$/; 
    if (!re.test(f.value)) { 
    alert("called"); 
//if you need to add a value instead that can also be done here 
return false; 
    } 
} 

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

<input id='txtUPT' name='UPT' type='text' style='width: 70px' onKeyPress="return NumbersOnly(event, 'lblStatusUPT')"> 
<label id='lblStatusUPT' class='status'></label> 
    function NumbersOnly(evt, label) { 
     var status = document.getElementById(label); 
     evt = (evt) ? evt : window.event; 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 
     if (charCode == 46) { 
      return true; 
     } 
     if (charCode < 48 || charCode > 57) { 
      status.innerHTML = 'Numbers Only Please'; 
      return false; 
     } 
     status.innerHTML = ''; 
     return true; 
    } 
+0

Я сделал Это . но не повезло – Vivek

+0

Я добавил в код. Я также добавил функцию, которую я использовал для чисел, только чтобы показать возможности проверки на основе нажатой клавиши. – kwelch

+1

Всякий раз, когда вы используете тернарный оператор и вещь на повторах 'y' здесь' x = (y)? Y: z', вы должны иметь возможность безопасно использовать 'x = y || z' (если я не ошибаюсь) – ajax333221

2
if(!$("#myform").validate().element("#myselect")) //Delete the character 
1
  • Получить нажатыми на входе
  • возвращение ложным, когда они используют ключ, который не хочу
  • сделать последний ch Эк перед отправкой формы (потому что они могли еще копировать/вставить нежелательные символы)

Есть много кода, там, люди решили изобрести именно этот диск, как один миллиона раз. Просто google вокруг.

Смежные вопросы