[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка ввода полей формы
ak_lucky_47
Здравствуйте помогите создать яваскрипт проверки ввода формы!
вот форма:
<form action='/?page=bugs' method=post onSubmit = \"return checkform(this)\">
<table width='100%' border='0'>
<tr><td>Имя игрового персонажа:</td>
<td><input name='usr_name' type='text' size=50 required></td></tr>
<tr><td width='35%'>Сылка на <a href='/'>wowhead.com:</a></td>
<td><input name='usr_link' type='text' size=50><br><br></td></tr>
<tr><td>Баг заключается:</td>
<td>
<select name='vids_bug'>
<option value='Метка не выбрана'>Выберите метку бага...</option>
<option value='Спелы и таланты'>Спелы и таланты</option>
<option value='Заселение'>Заселение</option>
<option value='Лут с Npc'>Лут с Npc</option>
<option value='Квесты'>Квесты</option>
<option value='Инстансы'>Инстансы</option>
<option value='Предметы'>Предметы</option>
<option value='Остальное'>Остальное</option>
</select></td></tr>
<tr><td>Описание бага:</td><td><br>
<textarea name='full_bug' cols=38 rows=5></textarea></td></tr>
<tr><td></td><td><center>
<input type='submit' value='Отправить' name='submit'>
<input type='reset' value='Очистить форму'>
</center>
</td></tr>
</table>
</form>




Спустя 4 минуты, 27 секунд (26.02.2011 - 23:54) uWeb написал(а):
Какие поля и как проверять?

Спустя 7 минут, 44 секунды (27.02.2011 - 00:02) ak_lucky_47 написал(а):
uWeb
1)поле Имя игрового персонажа - usr_name - проверять на наличие симоволов типа @ /+- если присутствуют то ошибка и чтоб можно было руский и английский шрифт использовать
2)поле Сылка на wowhead.com - usr_link - нужно проверить чтоб в этом поле присутствовало имя сайта wowhead.com одним словом сылка именно на wowhead.com
3)поле Баг заключается - vids_bug - если value='0' то пишет типа выберите баг
4)поле Описание бага - full_bug - должно быть символов не меньше 30

и все))

Спустя 1 час, 36 минут, 8 секунд (27.02.2011 - 01:38) inpost написал(а):
ak_lucky_47
А сам ты пробовал как? Показывай код. Если нет - иди учись и тренируйся, работать не будет - к нам =).

Спустя 2 минуты, 12 секунд (27.02.2011 - 01:40) ak_lucky_47 написал(а):
inpost
Просто в данный момент java меня не интересует так как взялся учить sql+php
а зачем смешивать с java хотя можно было но у меня мозг взорвется !
вот я и попросил чтоб сделали)

Спустя 15 минут, 8 секунд (27.02.2011 - 01:55) inpost написал(а):
ak_lucky_47
JAVA & JavaScript - разные языки программирования.
Регулярки на JS идентичны с регулярками на PHP, так что изучить регулярки необходимо, если взялся за PHP.

Спустя 2 минуты, 14 секунд (27.02.2011 - 01:58) ak_lucky_47 написал(а):
inpost
видите я их даже не различаю!
что такое регулярки? если можно то сылку на их изучение!

Спустя 3 минуты, 14 секунд (27.02.2011 - 02:01) inpost написал(а):
В гугле: регулярные выражения.
Есть так же тут: irbis-team.com
Есть в книге: Котерова
Есть в видео-курсе по JS: Андрея Морковина, и JS + jQuery от Попова.

Для начала должно хватить.

Спустя 35 минут, 57 секунд (27.02.2011 - 02:37) ak_lucky_47 написал(а):
вот сам скрипт проверки но у меня он не работает в чем ошибка?
<script>
function checkForm(obj){
var return_value = true;
// регулярное вырожение, для проверки wowhead
var reg_usr_link = /[0-9a-z_]+wowhead.com[0-9a-z_^.]+.[a-z]{2,3}/i;
// регулярное вырожение, для имени персонажа
var reg_usr_name = /[a-z]+/i;
// заносим значение поля почтовый ящик в переменную mail
var usr_link = obj.usr_link.value;
// заносим значение поля отправитель в переменную sender
var usr_name = obj.usr_name.value;
// заносим значение поля сообщение в переменную msg
var vids_bug = obj.vids_bug.value;
// объявляем переменную куда будет заносится текст сообщения
var error_msg = "Не корректно заполнины поля: ";

//проверка поля имя персонажа
if(reg_usr_name.exec(usr_name) == null && usr_name ==""){
error_msg += "Отправитель ";
return_value = false;
}
//проверка поля сылки на wowhead
if(reg_usr_link.exec(usr_link) == null){
error_msg += "wowhead";
return_value = false;
}
//проверка поля метка бага
if(vids_bug == ""){
error_msg += "Текст сообщения ";
return_value = false;
}
//проверка на наличие ошибок, если возникла ошибка ввыводим текст сообщения
if(!return_value)
alert(error_msg);

return return_value;
}
</script>

вот под эту форму

<form action='/?page=bugs' method=post onSubmit = \"return checkform(this);\">
<table width='100%' border='0'>
<tr><td>Имя игрового персонажа:</td><td><input name='usr_name' type='text' size=50 required></td></tr>
<tr><td width='35%'>Сылка на <a href='/'>wowhead.com:</a></td><td><input name='usr_link' type='text' size=50><br><br></td></tr>
<tr><td>Баг заключается:</td><td>
<select name='vids_bug'>
<option value='Метка не выбрана'>Выберите метку бага...</option>
<option value='Спелы и таланты'>Спелы и таланты</option>
<option value='Заселение'>Заселение</option>
<option value='Лут с Npc'>Лут с Npc</option>
<option value='Квесты'>Квесты</option>
<option value='Инстансы'>Инстансы</option>
<option value='Предметы'>Предметы</option>
<option value='Остальное'>Остальное</option>
</select></td></tr>
<tr><td>Описание бага:</td><td><br><textarea name='full_bug' cols=38 rows=5></textarea></td></tr>
<tr><td></td><td><center>
<input type='submit' value='Отправить на расмотрение' name='submit'>
<input type='reset' value='Очистить форму'></center>
</td></tr></table></form>


Спустя 9 часов, 41 минута, 54 секунды (27.02.2011 - 12:19) nugle написал(а):
inpost, человек за пол часа изучил JS biggrin.gif феноменально)
ak_lucky_47, простой скрипт взятый из интернета, ничего вам не даст, если вы не знаете основ!Конечно же поэтому он и не работает!

Спустя 1 час, 40 минут, 56 секунд (27.02.2011 - 14:00) Guest написал(а):
nugle
я вам повторяю что в данный момент мне не нужно изучать javascript
я попросил проверить код на наличие ошибок

Спустя 4 часа, 17 минут, 13 секунд (27.02.2011 - 18:17) inpost написал(а):
ak_lucky_47
Не работает, потому что не тот скрипт взял! Он полностью неправильный, регулярка в нём всего одна, ито которая тебе не подойдет.
Ну если не нужно изучать регулярные выражения, то делай сайт без них. Когда будет нужно, вернёшься и добавишь проверку =)
Мы тут халявщиков не кормим, запомни, а только помогаем в сложных ситуациях для человека, а не "написать за меня".

Спустя 2 часа, 49 минут, 51 секунда (27.02.2011 - 21:07) Guest написал(а):
inpost
я попросил посмотреть мои ошибки в этом коде чтоб вы мне подсказали!

Спустя 33 минуты, 28 секунд (27.02.2011 - 21:40) inpost написал(а):
Guest
В чужом, который вообще не рабочий? Нету в нём ошибок, он сам - ошибка =)
Писать надо самому.

Спустя 1 день, 30 минут, 44 секунды (28.02.2011 - 22:11) Guest написал(а):
inpost
вот все сделал только вот не могу понять форма не отправляет данные в таблицу(

<div class='hbox homenews'>
<
h3>Баг-трекер</h3>
<
div class='cont'>
<
script type="text/javascript"><!--
function checkForm(obj){
var msg="Не корректно заполнены поля:\n\n";
var ret=true, s, n;
n=obj.length-2;//минус 2 последние кнопки
//перед проверками сбрасываем все поля в зелёный

while(n--){obj.elements[n].style.background="yellowgreen";};

//проверяем имя, можно маленькие русские и не русские буквы
s=obj.usrName.value;
//длину имени может тоже надо проверять? пока заткнул только пустую строку
if(/[^a--яё]/.test(s)||s==""){
obj.usrName.style.background="pink";
msg+="Отправитель\n";
ret=false;};

//проверяем линк на наличие в нём слова "wowhead"
//тут не всё так просто, если это настоящий линк, то его и проверять нужно по настоящему. и вообще непонятно, а почему этот линк должен пользователь вводить? если это некий конкретный линк.

s=obj.usrLink.value;
n=s.indexOf("wowhead");
if(n<0||s==""){
obj.usrLink.style.background="pink";
msg+="wowhead\n";
ret=false;};

//проверяем что выбрано в меню
n=obj.vidsBug.selectedIndex;
if(n==0){
obj.vidsBug.style.background="pink";
msg+="Текст сообщения\n";
ret=false;};

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

s=obj.fullBug.value;
n=escape(s).search(/%0d%0a%0d%0a|%0a%0a|%20%20/i);
if(n>=0||s.length<30){
obj.fullBug.style.background="pink";
msg+="Слишком мало информации.";
ret=false;};

if(!ret){alert(msg);};
return false;//это затычка, чтобы субмит пока ни куда не пошёл
//return ret;

};//
--></script>




<?php
if(!isset($_POST['submit'])){
echo "
<form action='/?page=bugs' method='post' id='usrForm' onsubmit='var ret=checkForm(this); if(ret){return true;}else{return false;};'>
<table border='0' width='100%' cellpadding='5' cellspacing='0'>
<tr><td style='width:35%;'>Имя игрового персонажа:
</td><td>
<div><input type='text' name='usrName' size='40' value='' style='background:yellowgreen;'></div>
</td></tr><tr><td>
Ссылка на <a href='/'>wowhead.com:</a>
</td><td>
<div><input type='text' name='usrLink' size='40' value='' style='background:yellowgreen;'></div>
</td></tr><tr><td>
Баг заключается:
</td><td>
<div><select name='vidsBug' style='background:yellowgreen;'>
<option value='Метка не выбрана'>Выберите метку бага...</option>
<option value='Спелы и таланты'>Спелы и таланты</option>
<option value='Заселение'>Заселение</option>
<option value='Лут с Npc'>Лут с Npc</option>
<option value='Квесты'>Квесты</option>
<option value='Инстансы'>Инстансы</option>
<option value='Предметы'>Предметы</option>
<option value='Остальное'>Остальное</option>
</select></div>
</td></tr>
<tr><td>Описание бага:</td><td>
<div><textarea name='fullBug' cols='38' rows='5' style='background:yellowgreen;'></textarea></div>
</td></tr>
<tr><td></td><td>
<div>
<input type='submit' value='Отправить' name='subm'>
<input type='reset' value='Очистить форму'>
</div>
</td></tr></table>
</form>"
;
}
else{
mysql_connect($sqlhost, $sqlusr, $sqlpass) or die ("Не могу создать соединение с Mysql");
mysql_select_db($realmd) or die (mysql_error());
$cdate = date("Y-m-d");
$query = "INSERT INTO bugs SET usr_name='".$_POST['usr_name']."', usr_link='".$_POST["usr_link"]."',
vids_bug='"
.$_POST["vids_bug"]."', full_bug='".$_POST["full_bug"]."', data='$cdate'";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die ("таблици Bugs не существует ");

/* Закрываем соединение */
mysql_close();

/* В случае успешного сохранения выводим сообщение и ссылку возврата */
echo ("<center><br><img src=\"images/yes.png\"/><br>Спасибо что сообщили о нахождении бага.<br>Если ваш запрос подтвердится то администрация вознаградит вашего персонажа в игровом мире<center>");


}
?>

</div>
</
div>

Спустя 4 минуты, 10 секунд (28.02.2011 - 22:15) inpost написал(а):
Молодец, сделал, а теперь своими словами объясни эту строчку... или ты снова спёр готовенькое?
n=escape(s).search(/%0d%0a%0d%0a|%0a%0a|%20%20/i);

Спустя 2 минуты, 18 секунд (28.02.2011 - 22:17) Guest написал(а):
inpost
это проверка чтоб небыло пробелов а был текст

Спустя 3 минуты, 58 секунд (28.02.2011 - 22:21) ak_lucky_47 написал(а):
inpostделал не сам( мне помогали учили через тим вивер и скайп))
было мучительно!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.