Проблемы с JS-кодом в Opera/Mozilla

dimases

Новичок
Проблемы с JS-кодом в Opera/Mozilla

Вообщем, есть документ с такой формой:
<form
name="form206"
method="POST"
action="add"
target="basket">
<input type="text" name="count" maxlength='15' size=5 class=menuform value="10"><input type="submit" value="Добавить">
<input type="text" name="basketcount206" readonly size=3 value="0" class=hidden> шт.
</small>

Форма сабмититься в iframe на этом же документе (0х0) с именем basket. И в результате работы скрипта "add", помимо его собственно работы, генериться JS-код (ну коль пример выше с 206, то и тут - с 206):
<script language="javascript"><!--
parent.form206.basketcount206.value=10;
//--></script>


При его работе значение поля basketcount206 становиться равным 10. И это работает в IE как надо...

Но не хочет работать в subj. Что делать?
 

SelenIT

IT-лунатик :)
(пальцем в небо) попробуй добавить parent.document.form206... (и далее по тексту)
 

dimases

Новичок
Автор оригинала: McLay
попробуй id=form206
Спасибо, уже все через "document" заработало...

PS... Может кто знает, почем в Mozilla FireFox не работает alert и onsubmit? В опере это все нормально работает?
 

SelenIT

IT-лунатик :)
Все вышеназванное работает и в Firefox, и в ее предшественниках. В современных Операх - тоже. Ищи опечатку в коде...
 

dimases

Новичок
Автор оригинала: SelenIT
Все вышеназванное работает и в Firefox, и в ее предшественниках. В современных Операх - тоже. Ищи опечатку в коде...
В том и дело, что в IE и Opera 8 наботает нормально, а в Firefox - нет... Код привести?
 

dimases

Новичок
Автор оригинала: Panchous
ага
PHP:
<script type="text/javascript">
  function isEmail(entered){

    with (entered) {

       apos = value.indexOf("@");
       dotpos = value.lastIndexOf(".");
       lastpos = value.length-1;

       if (value.substring(0,1) == " " || apos < 1 || dotpos - apos < 2 || lastpos - dotpos > 3 || lastpos - dotpos < 2){
           alert("Вводите корректный E-MAIL!");
           return false;


          }
       else {

          return true;
       }

    }
  }


  function checking(){

                for (var i=0; i<checking.arguments.length; i++) {
                          if (checking.arguments[i] == "email" && document.getElementById(checking.arguments[i]).value.length > 0) email = isEmail(document.getElementById(checking.arguments[i]));
                             else email = true;
                          if (document.getElementById(checking.arguments[i]).value.length == 0 || email == false){
                             alert("Пожалуйста, заполните выделенное поле!");
                             document.getElementById(checking.arguments[i]).focus();
                             return false;
                           }
                }
       return true;
  }


</script>

<form method="POST"  onSubmit="return checking('fio');">
<input type=text name="fio" size=40 style="width:100%" value=''>
</form>
Там есть проверка на валидность email, исключать из сценария не стал, но в данном случае она не требуется.
 

Panchous

Павел
напиши так:
Код:
<script>
alert('Текст, который я не увижу в Mozilla FireFox ');
</script>
если это сработает - ищи опечатку в СВОЕМ коде.
(советую включить консоль отладки)
 

dimases

Новичок
Да все ясно, только не понятно как получить
document.forms.form.elements.fio.value

если fio в checking.arguments

ибо checking.arguments='fio';
document.forms.form.elements.checking.arguments.value в мозилле не работает...

Как правильно, кто знает?
 

SelenIT

IT-лунатик :)
if (document.getElementById(checking.arguments).value.length ...
...
<input type=text name="fio" size=40 style="width:100%" value=''>

Элемент ищется по иду, а есть у него только нейм. Отсюда тривиальное решение - добавить к инпуту атрибут id="fio".
 

dimases

Новичок
Автор оригинала: SelenIT
Элемент ищется по иду, а есть у него только нейм. Отсюда тривиальное решение - добавить к инпуту атрибут id="fio".
Так и думал...

Кстати, вроде еще есть getElementByName... Оно где-нибудь работает?
 
Сверху