Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: Проверка формы text на наличие изменений

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

lex377

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть куча input`ов типа text с установленным значением по умолчанию. У них общий form и submit. Нужно, чтоб скрипт сначала проверял, изменилось ли значение, установленное по умолчанию (юзер че-нить там поменял), или нет. Нужны имена и значения всех измененных input`ов.
 
Можно ли сделать так:

Код:
<input type = text name=\"cell_".$line[$k]."_".$i."_".$k."\" value=\"$line[$k]\">

 $k и $i - однозначно определяющие форму переменные.
 
И вообще, хочется спросить, какие символы могут находиться в "name"?




Добавил язык в название. — Svarga.

Всего записей: 80 | Зарегистр. 19-10-2004 | Отправлено: 20:50 03-11-2004 | Исправлено: Svarga, 02:37 04-11-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lex377

Цитата:
И вообще, хочется спросить, какие символы могут находиться в "name"?

Для javascript'a почти любые (нельзя %00, переводы строк — %0a, %0d... может ещё что-то)
Только обращаться надо будет не через
document.form.formName
а через
document.form['formName']
 
Вот пример:

Цитата:
 
<form name="frm">
<script>
var Z=unescape('%01')
document.write('<input type="text" style="width:100%" value="'+Z+'" name="'+Z+'">')
alert(escape(document.frm[Z].value))
</script>
</form>
 

(текстовое поле с именем %01)
 
А что стандарты о названиях элементов формы говорят — не помню точно...
 

Цитата:
Есть куча input`ов типа text с установленным значением по умолчанию. У них общий form и submit. Нужно, чтоб скрипт сначала проверял, изменилось ли значение, установленное по умолчанию (юзер че-нить там поменял), или нет. Нужны имена и значения всех измененных input`ов.

document.form.element.defaultValue
 
Добавлено
lex377

Код:
 
 
<form name="frm">
<input type=text name=c1 value=x1>
<input type=text name=c2 value=x2>
<input type=text name=c3 value=x3>
<input type=text name=c4 value=x4>
<input type=text name=c5 value=x5>
<script>
var F=document.frm
var changed={}
 
function checkEm(){
for(var i=0;i<F.length;++i){
        if(F[i].name && 'text'==F[i].type && F[i].value!=F[i].defaultValue){
                        changed[F[i].name]=F[i].value
                        }
        }
 
//вывод значений:
for(var y in changed){
        document.write(y+' = '+changed[y]+'<br>')
        }
}
 
</script>
<input type=button value="!!!" onClick="checkEm()">
</form>
 
 

 
Добавлено
В действии:
http://forall.ru-board.com/Svarga/changedTextVals.html

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 02:35 04-11-2004
lex377

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за наглядный пример. Но мне надо не выводить, а передать эти измененные значения другому скрипту, сделаному на php. Поскольку с javaScript я мало знаком, возникла мысль поместить в document.write скрытую форму с измененными значениями и таким образом передать их POST`ом другому скрипту. Можно ли так сделать, или как-нить по-другому? Может, у javascript есть свои инструменты для отправки значений?

Всего записей: 80 | Зарегистр. 19-10-2004 | Отправлено: 11:05 04-11-2004 | Исправлено: lex377, 11:06 04-11-2004
Pisun



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проще всего, и достаточно  распространено  использование хидден полей
input type=hidden  
поля на той же форме,  измененные значения пишем  в них,  и  по нажатию  кнопки отправляем  в  скрипт,  используя POST.
а там  мы их вытащим  из гетпоста, зная имя хидден поля

Всего записей: 482 | Зарегистр. 15-06-2002 | Отправлено: 15:10 04-11-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lex377

Цитата:
Спасибо за наглядный пример. Но мне надо не выводить, а передать эти измененные значения другому скрипту, сделаному на php

а в чём проблема?
делаем на странице вторую форму, вносим список имён и изменённых значений туда в скрытое поле и отправляем:
 

Код:
<form name="frm">  
<input type=text name=c1 value=x1>  
<input type=text name=c2 value=x2>  
<input type=text name=c3 value=x3>  
<input type=text name=c4 value=x4>  
<input type=text name=c5 value=x5>  
<script>  
var F=document.frm  
var changed={}  
 
function checkEm(){  
var F1=document.toSend
for(var i=0;i<F.length;++i){  
        if(F[i].name && 'text'==F[i].type && F[i].value!=F[i].defaultValue){  
                        F1.data.value+=F[i].name+'='+F[i].value+'\n'
                        }  
        }  
//if(''!=F1.data.value)alert(F1.data.value)
if(''!=F1.data.value)F1.submit()
}  
 
</script>  
<input type=button value="!!!" onClick="checkEm()">  
</form>
<form name=toSend action="script.php" method=post>
<input type=hidden name="data">
</form>

 
http://forall.ru-board.com/Svarga/changedTextVals1.html

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 15:23 04-11-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: Проверка формы text на наличие изменений


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru

Рейтинг.ru