Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу обратится к value
 
 автор: sidPR   (05.03.2007 в 19:17)   письмо автору
 
 

document.forms['reg'].nick.value обращяюсь так ... вот структура :


<div id="registration" style="display:none">
<table  id="bg1" cellpadding=0 cellspacing="0" style="top: -160px;margin-left: -260px;">
<tr><td align="right" valign="top" height="21"> <img src='img/close_p.gif' onclick="login(1);"> </td></tr>
<tr><td id='log-in'>
<form name='reg' method="post" action="lg.php">
<table cellpadding=2 cellspacing=4>
<tr>
<td align="center"><div id="ops"></div></td>
</tr>
<tr>
<td align="center">
<table width="500" cellpadding=3>
<tr>
<td align="right"><b>* Ник/Nick/Login:</b> </td>
<td><input type="text" name="nick" maxlength="12"> <input type="button" value="Проверить" onclick="if(this.form.nick.value.length >= 3){http_request('nick');}else{alert('Логин должен состоять из трех или более символов');}"></td>
</tr>
<tr>


пишет что ноль document.forms['reg'].nick.value ... пробывал window.document.forms['reg'].nick.value
по разному не получялось ... подскажитекак можно обратится :(

   
 
 автор: ddhvvn   (05.03.2007 в 19:28)   письмо автору
 
   для: sidPR   (05.03.2007 в 19:17)
 

А попробуйте просто "document.all.nick.value"...

   
 
 автор: bronenos   (05.03.2007 в 19:43)   письмо автору
 
   для: ddhvvn   (05.03.2007 в 19:28)
 

или document.reg.nick.value

   
 
 автор: sidPR   (05.03.2007 в 19:53)   письмо автору
 
   для: bronenos   (05.03.2007 в 19:43)
 

не один из выше предложинных методов не работает . ...

   
 
 автор: RMW   (05.03.2007 в 19:58)   письмо автору
 
   для: sidPR   (05.03.2007 в 19:17)
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<form name="reg">
<input type="text" name="nick" value="Чукча умный!">
<input type="button" value="Проверить" onclick="alert(this.form.nick.value)">
</form>
<button onclick="alert(document.forms['reg'].nick.value)">Ещё раз проверить</button><br>
<button onclick="alert(document.all.nick.value)">И ещё раз проверить</button><br>
<button onclick="alert(document.forms.reg.nick.value)">И ещё раз</button><br>
<button onclick="alert(document.forms['reg'].elements['nick'].value)">И ещё</button><br>
<button onclick="alert(document.forms['reg']['nick'].value)">И ещё</button>
</html>

   
 
 автор: sidPR   (05.03.2007 в 20:08)   письмо автору
 
   для: RMW   (05.03.2007 в 19:58)
 

Работает только this.form :(

   
 
 автор: sidPR   (05.03.2007 в 20:10)   письмо автору
 
   для: sidPR   (05.03.2007 в 20:08)
 

Забыл еще сказать что див div id="registration" вставляется по средством InnerHTML в другой див.. может ето влияет на обращение ? хотя может и нет ..

   
 
 автор: sidPR   (05.03.2007 в 20:18)   письмо автору
 
   для: sidPR   (05.03.2007 в 20:10)
 

Хорошо если так не получается подскажите тогда как можно обратится следующим образом пишу так но не получается я пытаюсь в функцию передать this.form а ужэ со сзначениями в нутри работать


<table width="500" cellpadding=3>
<tr>
<td align="right"><b>* Ник/Nick/Login:</b> </td>
<td><input type="text" name="nick" maxlength="12"> <input type="button" value="Проверить" onclick="if(this.form.nick.value.length >= 3){http_request('nick');}else{alert('Логин должен состоять из трех или более символов');}"></td>
</tr>
<tr>
<td align="right" ><b>* Электронная почта: </b></td>
<td><input type="text" name="mail">  <input type="button" value="Проверить" onclick="sub(this.form);"></td>
</tr>
</table>
<script>
function sub(g){
    var b = g;
    alert(b.nick.value);

}
</script>

   
 
 автор: sidPR   (05.03.2007 в 23:46)   письмо автору
 
   для: sidPR   (05.03.2007 в 20:18)
 

Скажите как привельно читать из функции переданные this.form ..

   
 
 автор: sidPR   (07.03.2007 в 13:10)   письмо автору
 
   для: sidPR   (05.03.2007 в 23:46)
 

Неужели никто не знает ?

   
 
 автор: sidPR   (07.03.2007 в 20:53)   письмо автору
 
   для: sidPR   (07.03.2007 в 13:10)
 

до сих пор таже трабла

   
 
 автор: bronenos   (07.03.2007 в 21:24)   письмо автору
 
   для: sidPR   (07.03.2007 в 20:53)
 

go (this.form);

function go (obj)
{
alert (obj.text.value);
}

   
 
 автор: sidPR   (08.03.2007 в 00:41)   письмо автору
 
   для: bronenos   (07.03.2007 в 21:24)
 


<table width="500" cellpadding=3>
<tr>
<td align="right"><b>* Ник/Nick/Login:</b> </td>
<td><input type="text" name="nick" maxlength="12"> <input type="button" value="Проверить" onclick="if(this.form.nick.value.length >= 3){http_request('nick');}else{alert('Логин должен состоять из трех или более символов');}"></td>
</tr>
<tr>
<td align="right" ><b>* Электронная почта: </b></td>
<td><input type="text" name="mail">  <input type="button" value="Проверить" onclick="sub(this.form);"></td>
</tr>
</table>
<script>
function sub(obj){
alert(obj.mail.value);
}
</script>


Пишет - "Требуется объект" ничего не пойму...

   
 
 автор: sidPR   (08.03.2007 в 01:10)   письмо автору
 
   для: sidPR   (08.03.2007 в 00:41)
 

Извеняюсь забыл про <form>

   
 
 автор: sidPR   (08.03.2007 в 01:21)   письмо автору
 
   для: sidPR   (08.03.2007 в 01:10)
 

Все всем спасибо кто откликнулся на помощь справился вроде :)

   
 
 автор: sidPR   (08.03.2007 в 01:57)   письмо автору
 
   для: sidPR   (08.03.2007 в 01:21)
 

тут проблемка с Opera и FF возникла при такой обращении я пробывал так использовать образение к объектам и их значениям


function proverka(obj){
    var str = obj.elements['mail'].value; 
    var str2 = obj.elements['nick'].value;


подскажите как правильнее а то этот метод не работает да и без elements тоже не катит..

   
 
 автор: bronenos   (08.03.2007 в 07:24)   письмо автору
 
   для: sidPR   (08.03.2007 в 00:41)
 

sub(form)

   
 
 автор: sidPR   (08.03.2007 в 14:24)   письмо автору
 
   для: bronenos   (08.03.2007 в 07:24)
 

??? это к чему и зачем ...

   
 
 автор: sidPR   (09.03.2007 в 00:08)   письмо автору
 
   для: sidPR   (08.03.2007 в 14:24)
 

Подскажите пожалуйста как обращятся к объект переданному в функцию


function proverka(obj){ }


Где obj, это this.form а внутри функции нужно обращятся к value любых элементов form

типо obj.name.value ... проблема в том что в IE работает в остальных не желает браузерах понимать что это и куда...

P.S. Заранее благодарю!

   
 
 автор: CNT   (09.03.2007 в 00:47)   письмо автору
 
   для: sidPR   (09.03.2007 в 00:08)
 

Сколько разных форм будут обращаться к функции proverka?
Я так понимаю, что всего-то одна единственная.

Поэтому нахрена передавать функции саму форму в качестве параметра, а?
Нахрена, спрашивается, юзать коллекцию elements, когда вы оперируете всего двумя полями?
Вы, когда находитесь вдвоём в одной комнате со своим другом, обращаясь к нему, разве каждый раз говорите - "Привет, Вася! С тобой говорит Петя..."? Или же ваш Вася настолько тупой, что может предположить, что в этой комнате ещё и стены говорящие?
-----

1. Прописываете форму с name="имя_формы"
2. Внутри формы прописываете у каждого поля (теги INPUT, SELECT, TEXTAREA и BUTTON) свои уникальные имена через атрибут name="уникальное_имя_поля"
3. Оформляете внутри формы вызов функции, не передавая ей никаких параметров
4. Внутри функции оперируете полями формы, обращаясь к каждому из них НАПРЯМУЮ в виде:
document.forms.имя_формы.уникальное_имя_поля


И никаких траблов не будет.

   
 
 автор: sidPR   (09.03.2007 в 01:16)   письмо автору
 
   для: CNT   (09.03.2007 в 00:47)
 

у меня так и была :) читайте выше от чего я шел и к чему пришел!.. у меня несколько запутанная схема у меня много вложенностей получается id в id все это вставляется innerHTML и поэтому прямое обращение не будет работать! ...

P.S. прежде чем писать прочитайте внимательно тему..

   
 
 автор: sidPR   (09.03.2007 в 01:16)   письмо автору
 
   для: sidPR   (09.03.2007 в 01:16)
 

Все еще жду помощи...

ps Заранее благодарю

   
 
 автор: CNT   (09.03.2007 в 04:47)   письмо автору
 
   для: sidPR   (09.03.2007 в 01:16)
 

Если всё вставите правильно, то всё должно нормально работать.
Тем более время на "приживление объекта к документу" (run-time) у вас в любом случае будет - пока юзер заполнит поля и кликнет.

   
 
 автор: sidPR   (09.03.2007 в 14:17)   письмо автору
 
   для: CNT   (09.03.2007 в 04:47)
 

ну я еще раз повторяю что не работает и мне нужно знать как обратится когда я передаю this.form в функцию чтобы работало в FF и Opera ...!!!!!

   
 
 автор: bronenos   (09.03.2007 в 14:40)   письмо автору
 
   для: sidPR   (09.03.2007 в 14:17)
 

<form name='myform'>
<input name='myfield'>
<input type='button' onclick='check(document.myform)'>
</form>

<script type='text/javascript'>
function check (obj)
{
  alert (obj.myfield.value);
}
</script>

   
 
 автор: sidPR   (09.03.2007 в 15:34)   письмо автору
 
   для: bronenos   (09.03.2007 в 14:40)
 


function proverka(obj){
    var str = obj.mail.value; 
    var str2 = obj.nick.value;
    alert(str2);


OPERA и FF НЕРАБОТАЕТ :((((( !!!
IE работает!

   
 
 автор: sidPR   (09.03.2007 в 15:43)   письмо автору
 
   для: sidPR   (09.03.2007 в 15:34)
 


<div id="registration" style="display:none">
<table  id="bg1" cellpadding=0 cellspacing="0" style="top: -160px;margin-left: -260px;">
<tr><td align="right" valign="top" height="21"> <img src='img/close_p.gif' onclick="login(1);"> </td></tr>
<tr><td id='log-in'>
<table cellpadding=2 cellspacing=4>
<tr>
<td align="center"><div id="ops"></div></td>
</tr>
<tr>
<td align="center">
<table width="500" cellpadding=3>
<tr>
<td align="right"><b>* Ник/Nick/Login:</b> </td>
<td>
<form name='reg' method="post" action="lg.php">
<input type="text" name="nick" maxlength="12"> <input type="button" value="Проверить" onclick="if(this.form.nick.value.length >= 3){http_request('nick',this.form.nick.value);}else{alert('Логин должен состоять из трех или более символов');}"></td>
</tr>
<tr>
<td align="right"><b> Ваше реальное Имя:</b></td>
<td><input type="text" name="name" maxlength="32"></td>
</tr>
<tr>
<td align="right"><b>* Пароль: </b></td> 
<td><input type="password" name="pass" maxlength="40"></td>
</tr>
<tr>
<td align="right" ><b>* Повторите пароль: </b></td>
<td><input type="password" name="pass2" maxlength="40"></td>
</tr>
<tr>
<td align="right" ><b>* Электронная почта: </b></td>
<td><input type="text" name="mail">  <input type="button" value="Проверить" onclick="http_request('mail',this.form.mail.value);"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center"><input type="button"  onclick="proverka(this.form);" value="Зарегистрироватся"><br><br>
<b>*</b> - обязательные поля для заполнения!<br>
<b>Обязательно указывайте реальный(действующий) почтовый адресс</b>
</td>
</form>
</tr>
</table> 
</td></tr></table>
</div>



function proverka(obj){
    var str = obj.mail.value; 
    var str2 = obj.nick.value;
    alert(str2);}


НЕ РАБОТАЕТ alert(str2) в FF и в Opera !!!!!!!!!!!!!!!!!!!!!!!

   
 
 автор: sidPR   (09.03.2007 в 15:52)   письмо автору
 
   для: sidPR   (09.03.2007 в 15:43)
 

Самое интересно что document.forms['reg'].nick.value так в FF и Opera рабтает но в Ie пишет есть Null или не является объектом... как быть?

   
 
 автор: sidPR   (10.03.2007 в 14:50)   письмо автору
 
   для: sidPR   (09.03.2007 в 15:52)
 

есть див


<div id="input"  class="input"></div>


в него по средством innerHTML вставляется ди <div id="registration" style="display:none"> который я предоставил выше по ветке в диве registration и есть та форма к которой надо обратится но что самое странное при всеъ моих попытка в IE работает только this.form а в opere и ff откликается на document.forms['reg'].nick.value ... Что предпринять посоветуйте кто сталкивался с такими проблемами ?

   
 
 автор: Lelik   (10.03.2007 в 15:03)   письмо автору
 
   для: sidPR   (10.03.2007 в 14:50)
 

соединяй

if(document.all && !window.opera){
//код для ИЕ
}
else{
//код для Оперы и ФФ
}

   
 
 автор: sidPR   (10.03.2007 в 17:17)   письмо автору
 
   для: Lelik   (10.03.2007 в 15:03)
 

С горем попалам заработало... но почему так происходит объясните почему я не могу напрямую обращятся и чтоб во всех браузерах работало нормально?

   
 
 автор: Lelik   (10.03.2007 в 17:23)   письмо автору
 
   для: sidPR   (10.03.2007 в 17:17)
 

с этим вопросом к разработчикам браузеров. думаю тебе интересно будет почитать о кроссбраузености в js

   
 
 автор: sidPR   (10.03.2007 в 17:43)   письмо автору
 
   для: Lelik   (10.03.2007 в 17:23)
 

Да полезная статья спасибО! я тут вообще в тупик пришел только что


function proverka(obj){    
    var str = obj.mail.value; 
    var str2 = obj.nick.value;


эта функция заработала во всех браузерах а вот эта


function sub_login(obj){
    if(obj.lg.value && obj.ps.value){
    obj.submit();
    }else{
        alert("Некоректно введены данные!");
    }
}


в IE не работает я вообще в шоке как такое возможно ?? обновлял по CTRL + F5 и не верю глазам ...

вот див и див в который вставляет форма


<div id="input"  class="input"></div>
<div id="logined"  style="display:none">
<form name="logins" method="POST" action="lg.php">
<table  id="bg1" cellpadding=0 cellspacing="0">
<tr><td align="right" valign="top" height="21"> <img src='img/close_p.gif' onclick="login(1);"> </td></tr>
<tr><td class="txt" align="center">
<b>Авторизация</b></td></tr><tr>
<td class="bg2">
<table cellpadding=4 border="0" id='log-in' align="center" height="">
<tr>
<td align="right"><b>Login: </b></td>
<td ><input align="left" type="text" name="lg"></td>
</tr>
<tr>
<td align="right"><b>Пароль:</b> </td>
<td><input type="password" name="ps"></td>
<tr>
<td></td>
</tr>
</tr>
</table>
</td>
</tr>
<tr style="PADDING-BOTTOM: 40px;"><td valign="top"><a href="#" style="FONT-SIZE: 13pt;" onclick="sub_login(this.form);">Вход</a></td></tr>
</table>
</form>
</div>



я просто не понимаю что происходит

в голове сайта прописанно

<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="imagetoolbar" content="no">


использует ajax но это я думаю тут не причем...

   
 
 автор: Lelik   (10.03.2007 в 17:48)   письмо автору
 
   для: sidPR   (10.03.2007 в 17:43)
 


function sub_login(obj){
    if(obj.lg.value.length >0 && obj.ps.value.length >0){
    obj.submit();
    }else{
        alert("Некоректно введены данные!");
    }



можно так попробовать

   
 
 автор: sidPR   (10.03.2007 в 17:57)   письмо автору
 
   для: Lelik   (10.03.2007 в 17:48)
 

пишет "lg" - есть null или не является объектом ... как так ? =\

   
 
 автор: Lelik   (10.03.2007 в 18:04)   письмо автору
 
   для: sidPR   (10.03.2007 в 17:57)
 


<a href="#" style="FONT-SIZE: 13pt;" onclick="sub_login(document.form['logins']);">


немножко не гибко, но можно так

   
 
 автор: sidPR   (10.03.2007 в 18:09)   письмо автору
 
   для: Lelik   (10.03.2007 в 18:04)
 

пишет "document.form.logins" - есть null или не является объектом ...

я не понимаю ничего если та функция работает с this.form какого хрена эта не работает .. полтергейст какойто !

   
 
 автор: sidPR   (10.03.2007 в 18:14)   письмо автору
 
   для: sidPR   (10.03.2007 в 18:09)
 

я вместо ссылки вставил <input type="button" onclick="sub_login(this.form);" value="Вход">
и все неожиданно заработало ... неужели только если я на объекте формы буду указывать такую передачу будет срабатывать... :(

   
 
 автор: Lelik   (10.03.2007 в 18:18)   письмо автору
 
   для: sidPR   (10.03.2007 в 18:14)
 

получается, что да. но так правильней ;)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования