Проверка текста в input
Помогите реализовать следующее:
Есть форма с полем <input name="name" type="text" id="name" value="" /> Можно ли как то сделать так: Подсчитать сколько запятых в поле и если их меньше 10 тогда показывает окошко с сообщением? |
if (value.split(',').length < 8) {
// show popup
}
|
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<input type="text">
<input type="button" value="go">
<script>
var inp = document.body.children[0];
var bt = document.body.children[1]
bt.onclick = function () {
var value = inp.value;
value = value.match(/,/g);
if(value && value.length >= 10) return;
alert("Запятых меньше 10");
}
</script>
</body>
</html>
|
cyber,
рекулярка то накой? |
Цитата:
56765,6757657 ваш код вернет такой массив ["56765", "6757657"]
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<input type="text" value="2312,21312,123">
<input type="button" value="go">
<script>
var inp = document.body.children[0];
var bt = document.body.children[1] ;
alert(inp.value.split(",").length);
bt.onclick = function () {
alert(inp.value.split(",").length);
}
</script>
</body>
</html>
|
cyber,
да неужели. А я думал массив из запятых. Это делается так:
var MY_MAGIC_NUMBER = 10;
if (value.split(',').length < (MY_MAGIC_NUMBER + 1)) {
// show popup
}
|
Цитата:
http://javascript.ru/String/split Цитата:
|
cyber,
сарказм, не? В код посмотрите. |
Nekromancer,
и? я вижу строку в value которую метод split разбивает по зяпятыми, а про этот мараз я вообще промолчу
if (value.split(',').length < (MY_MAGIC_NUMBER + 1))
так как в моему случае записуеться в массив 10 запятых , а вашем все кроме запятых, а +1 для того что бы 100% "супер" код получился? что бы закончить флуд , пример ниже все прекрасно доказывает!
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<input value="111,222,333,444">
<script>
var input = document.body.children[0];
var value = input.value;
alert("Мой вариант: "+value.match(/,/g));
alert("Ваш вариант: "+value.split(","))
</script>
</body>
</html>
|
cyber,
Что он доказывает? Что надо поднимать регулярки для поиска запятых? |
Цитата:
|
Цитата:
Я тоже так думаю. |
Только он интерпретатор, если что.
|
Цитата:
|
Цитата:
Если за компиляцию принять не полный перевод, а покомандный, тогда да. |
Цитата:
http://ru.wikipedia.org/wiki/Движок_JavaScript |
Цитата:
|
cyber, ваш вариант отлично работает =)
Спасибо всем за помощь =) |
cyber,
Nekromancer прав . проход регуляркой сожрёт больше ресурсов и будет выполняться дольше чем разбиение строки на массив |
не пойму, на тестовой странице все работает, а вот в форме не пашет =(
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="name" id="name" value="" />
<input type="text" name="tags" id="tags" value="" />
<input class="upl" type="submit" name="upload" id="upload" value="загрузить" />
</form>
<script>
var inp = document.body.children[0];
var bt = document.body.children[1]
bt.onclick = function () {
var value = inp.value;
value = value.match(/,/g);
if(value && value.length >= 10) return;
alert("Запятых меньше 10");
}
</script>
</body>
</html>
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 09:55. |