2014-02-18 2 views
0

У меня есть форма, где пользователь может добавить дополнительные поля ввода при нажатии кнопки. Пользователь может иметь столько полей ввода, сколько захочет.подтверждение ввода javascript/jquery

Я не планирую добавлять кнопку для удаления полей.

Они по умолчанию количества входных ящиков 2. Say пользователь решает добавить еще 3, в настоящее время есть в общей сложности 5

Для проверки, я хотел бы проверить, если поле ввода пусто или если вход имеет все пробелы, такие как: «" независимо от того, сколько пробелов, если у него нет ничего, кроме пространства. Я могу сделать проверку на пустой ввод, проверив длину, но как я могу проверить последний? Существует ли регулярное выражение для любого числа последовательных пробелов? Спасибо!

PS: Я использую JQuery с JQuery мобильного

+0

Вы не против простого решения JavaScript? – Schien

+0

@Schien Название говорит ** javascript **/jquery, и теги включают javascript, поэтому я бы сказал, пойдите для этого. – rvighne

+0

Да, конечно :) Я посмотрю, что я с этим смогу. –

ответ

1

Вы можете проверить, если поле ввода пустым, проверяя его .value.length, как вы уже знаете. Для того, чтобы проверить, если он содержит только пробелы, то попробуйте следующее: (при условии, что вход хранится в переменной с именем input)

if (!input.value.trim().length) // oh noes! it's blank or whitespace-filled! 

Reference.

+0

Спасибо! помечены как ответ и +1 для справки. trim() был тем, что я искал. :) –

+1

Просто имейте в виду, что метод .trim() не поддерживается в IE8 и более ранних версиях. Вы можете использовать [обрезка] jQuery (http://api.jquery.com/jQuery.trim/). –

1

Ваш вопрос имеет несколько компонентов:

  • как добавлять поля ввода динамически?
  • как пройти через эти поля и проверить их также?
  • Как проверить, действительно ли поле содержит контент, а не только пустые значения?

Мы должны решать все эти вопросы на систематической основе:

Начиная с самой простой - обнаружением пустой строкой:

if (value.replace(/\s/g,'')=='') //string is empty 

Далее, чтобы добавить поля ввода динамически:

var myinput=document.createElement('input'); 
document.body.appendChild(myinput); 

//the trick here is to "remember" this element for later use 
document.myinputs=[]; 
document.myinputs.push(myinput); 

Чтобы проверить все поля ввода, сначала проверьте статические, затем выполните циклические изменения полей ввода:

valid=true; //default to true unless detected otherwise 
for (var i=0;i<document.myinputs.length;i++){ 
    var input=document.myinputs[i]; 
    if (input.value.replace(/\s/g,'')=='') valid=false; 
} 

alert(valid); 
+0

Спасибо! но ответ rvighne был самым близким :) trim() был тем, что мне было нужно, но, глядя на ваш ответ и делая несколько быстрых google, похоже, он также исправляет проблему. Кроме того, при добавлении полей ввода я использовал .clone() из jquery Спасибо! Если бы я мог дать +2 –

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