Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление проверочного числа 
V
    Опции темы
NZero
Дата 6.6.2014, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Сделал поле для ввода проверочного числа, реально достали роботы.
Но если ввести в поле некорректное число проверочное число не обновляется.
Как добиться обновления проверочного числа?

Код

<script type="text/javascript" language="javascript">
var num = Math.floor(Math.random() * (10000 - 1000 + 1)) + 1000; //Проверочное число
function checkNum()
{
    return num;
}
 
function checkRev(c) {    
        
        var text = 'Заполните все обязательные поля!';
        var fbook = document.forms.add_gbook;
        
        if(fbook.name.value != ""){
            
        } else {
            alert(text);
            fbook.name.style.borderColor = c;
            fbook.name.focus();
            return false;
        }
        
        /*if(fbook.mail.value != "") {            
            if(!(/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(fbook.mail.value))) {
            alert('Введите правильный e-mail адрес!');
            fbook.mail.focus();
            fbook.mail.style.borderColor=c;
            return false;
        } else{
            
        }*/
         
        
        if(fbook.city.value != ""){
            
        }   else {
            alert(text);
            fbook.city.style.borderColor = c;
            fbook.city.focus();
            return false;
        }
        
        if(fbook.comment.value != ""){
            
        }   else {
            alert(text);
            fbook.comment.style.borderColor = c;
            fbook.comment.focus();
            return false;
        }
        
        if(fbook.number.value != num)//Если введено неправильное число, переменная num должна обновляться
        {
            alert("Введено неправильное проверочное число!");
            fbook.number.style.borderColor = c;
            fbook.number.focus();
            fbook.number.value = "";
            return false;
        }
    }
</script>


Код

<p class="title"><font color="red" size="2" face="Arial">* - поля обязательные для заполнения!</font></p>
<div style="padding: 0 0 20px 20px;">
<form name="add_gbook" action="" method="post">
<font size="2" face="Arial">Ваше Имя<font color="red">*</font></font><br />
<input type="text" name="name" size="40" maxlength="100" value=""/><br />
<font size="2" face="Arial">E-mail</font><br />
<input type="text" name="mail" size="40" maxlength="100" value=""/><br />
<font size="2" face="Arial">Ваш город<font color="red">*</font></font><br />
<input type="text" name="city" size="40" maxlength="100" value="Москва"/><br />
<font size="2" face="Arial">Ваше сообщение<font color="red">*</font></font><br />
<textarea name="comment" cols="70" rows="5"></textarea><br />
<script type="text/javascript" language="javascript">
document.write("Пожалуйста введите число: " + num); //Здесь должна обновляться переменная num, если она введена неправильно
</script>
<input type="text" name="number" size="10" maxlength="100" value=""/><br />
<button type="submit" onclick="return checkRev('red')">Добавить</button>
</form>
</div>


Это сообщение отредактировал(а) NZero - 6.6.2014, 08:23
PM MAIL WWW ICQ   Вверх
Aliance
Дата 6.6.2014, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Не стоит использовать document.write. Корректно будет завести блок с каким-то идентификатором, написать функцию для генерации числа и вызывать ее для этого блока.
PM MAIL WWW ICQ Skype   Вверх
NZero
Дата 6.6.2014, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



получилось так

Код

<div id="check_num"></div>
<input type="text" name="number" size="10" maxlength="100" value=""/>

Код

if(fbook.number.value != num)
{
            alert("Введено неправильное проверочное чило!");
            fbook.number.style.borderColor = c;
            fbook.number.focus();
            fbook.number.value = "";
            return document.getElementById("check_num").innerHTML = "Введите число: " + num;
}


Как сделать прерывание скрипта, если некорректно водим число
return false и break пробовал, но тогда надпись введите число не выводится!

Это сообщение отредактировал(а) Aliance - 6.6.2014, 15:29
PM MAIL WWW ICQ   Вверх
Aliance
Дата 6.6.2014, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Что-то тут либо не полный код, либо вы в корне не понимаете основ js и html.
Проще дать готовый пример, чем объяснять: http://jsfiddle.net/Aliance/JK7TS/
Надеюсь вопросов с тем как это вставить к себе на страницу не возникнет? Если возникнет - есть функция "просмотра исходного кода".
PM MAIL WWW ICQ Skype   Вверх
NZero
Дата 6.6.2014, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Спасибо большое, направили на правильное решение!!! Получилось

Код

<p class="title"><font color="red" size="2" face="Arial">* - поля обязательные для заполнения!</font></p>
<div style="padding: 0 0 20px 20px;">
<form name="add_gbook" action="" method="post">
<font size="2" face="Arial">Ваше Имя<font color="red">*</font></font><br />
<input type="text" name="name" size="40" maxlength="100" value=""/><br />
<font size="2" face="Arial">E-mail</font><br />
<input type="text" name="mail" size="40" maxlength="100" value=""/><br />
<font size="2" face="Arial">Ваш город<font color="red">*</font></font><br />
<input type="text" name="city" size="40" maxlength="100" value="Москва"/><br />
<font size="2" face="Arial">Ваше сообщение<font color="red">*</font></font><br />
<textarea name="comment" cols="70" rows="5"></textarea><br />
<table border="0">
<tr>
<td>
<div id="check_num"></div>
</td>
<td>
<input type="text" name="number" size="10" maxlength="100" value=""/>
</td>
</tr>
</table>
<button type="submit" onclick="return checkRev('red')">Добавить</button>
</form>
</div>
<script type="text/javascript" language="javascript">
var num = Math.floor(Math.random() * (10000 - 1000 + 1)) + 1000;
var e_num = document.getElementById("check_num");

e_num.innerHTML = "Введиет проверочное число: " + num;

function checkRev(c) {    
        
        var text = 'Заполните все обязательные поля!';
        var fbook = document.forms.add_gbook;
        
        if(fbook.name.value != ""){
            
        } else {
            alert(text);
            fbook.name.style.borderColor = c;
            fbook.name.focus();
            return false;
        }
        
        if(fbook.mail.value != "") {            
            if(!(/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(fbook.mail.value))) {
            alert('Введите правильный e-mail адрес!');
            fbook.mail.focus();
            fbook.mail.style.borderColor=c;
            return false;
            }
        }
         
        
        if(fbook.city.value != ""){
            
        }   else {
            alert(text);
            fbook.city.style.borderColor = c;
            fbook.city.focus();
            return false;
        }
        
        if(fbook.comment.value != ""){
            
        }   else {
            alert(text);
            fbook.comment.style.borderColor = c;
            fbook.comment.focus();
            return false;
        }
        
        if(fbook.number.value != num)
        {
            alert("Введено неправильное проверочное чило!");
            fbook.number.style.borderColor = c;
            fbook.number.focus();
            fbook.number.value = "";
            gen_number();
            return false;
        }
}

function gen_number()
{
    num = Math.floor(Math.random() * (10000 - 1000 + 1)) + 1000;
    e_num.innerHTML = "Введите проверочное число: " + num;
}
</script>

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0833 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.