Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: при добавлении таблицы в форму не работает submit

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Contr
Отправлено: 04 Января, 2016 - 17:26:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Не понял Не могу понять, в чем проблема
Имеем:
CODE (html):
скопировать код в буфер обмена
  1. <form id="new" onsubmit="return false;">
  2.     <input />
  3.         <table id="tableR">
  4.         <thead>
  5.             <tr class="head">
  6.                 <td width="90"><div class="main">Общий список материалов</div><div>наименование</div></td>
  7.                 <td>ед. изм./<br/>кол-во</td>
  8.                 <td>
  9.                     <div id="clearRes" class="button16 clear" onclick="clearResource();" title="Новый"></div>
  10.                 </td>
  11.             </tr>
  12.             <tr>
  13.                 <td>
  14.                     <textarea id="resname" type="text" rows="2" cols="47" autocomplete="off"></textarea>
  15.                 </td>
  16.                 <td>
  17.                     <input id="resunit" type="text" size="6" class="center" autocomplete="off"/><br/>
  18.                     <input id="resquan" type="text" size="6" autocomplete="off"/>
  19.                 </td>
  20.                 <td class="manage">
  21.                     <div id="addRes" class="button16 save" onclick="addResource();" title="Сохранить"></div>
  22.                 </td>
  23.             </tr>
  24.         </thead>
  25.         <tbody id="res"></tbody>
  26.     </table>
  27. </form>

CODE (javascript):
скопировать код в буфер обмена
  1. document.addEventListener("DOMContentLoaded", function() {
  2.     document.getElementById('new').addEventListener('submit', function(){console.log(122);})
  3. });


Если таблицу закомментировать - работает (в логах пишет 122). С таблицей внутри form - нет. Почему?
 
 Top
ПТО
Отправлено: 04 Января, 2016 - 18:02:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




Немного похоже на старый баг:
https://bugzilla[dot]mozilla[dot]org/sho[dot][dot][dot]ug[dot]cgi?id=363397
(Добавление)
https://jsfiddle[dot]net/ce810fy4/5/

На самом деле, непонятно, почему. Браузер мозила фф 43.0.1
 
 Top
Contr
Отправлено: 04 Января, 2016 - 18:26:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Помогите разобраться, пожалуйста!

Закатив глазки Буду благодарен каждому ответу
 
 Top
Viper
Отправлено: 05 Января, 2016 - 08:54:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Contr пишет:
Помогите разобраться, пожалуйста!
пробуйте в других браузерах! Как минимум в Хроме, IE.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
IllusionMH
Отправлено: 05 Января, 2016 - 12:32:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Contr, а как форму отправляете то? При добавлении сабмит кнопки в форму в Opera, FF 42,43, 43.0.2 все ок.
В коде не вижу ни кнопки субмит, ни попытки отправки из JSа

(Отредактировано автором: 05 Января, 2016 - 12:33:25)

 
 Top
Romeo4755
Отправлено: 05 Января, 2016 - 19:01:48
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2015  


Помог: 0 раз(а)




Цитата:
Если таблицу закомментировать - работает (в логах пишет 122). С таблицей внутри form - нет. Почему?

getElementById внутри другого id не работает. И не должен - где-то это постулировано, я потеряла. Не все об этом помнят, потому что, когда внешний id в скриптах не используется, все работает нормально. Но когда внешний id тоже подвергается обращению (через тот же getElementById) - внутренний начинает творить чудеса. Иногда не начинает - тем они ужаснее, когда начинает.
То же самое при включении элемента с id в форму. С формой корректно обращаться через массив ее подэлементов. Например, document.forms[0].VasheIma.value отсюда:

CODE (html):
скопировать код в буфер обмена
  1. <input type="text" value="" name="VasheIma" placeholder="можно Жора, можно Гоша" size="40">


Надо или держать id в элементах первого уровня или обращаться к элементам не через id, а через типы, например (getElementsByTagName дает массив всех таблиц или всех картинок страницы и по определению от уровня вложенности не зависит).
http://a-panov[dot]ru/javascript-get[dot][dot][dot]yselector/#gEBTN
 
 Top
Contr
Отправлено: 11 Января, 2016 - 09:16:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




IllusionMH пишет:
Contr, а как форму отправляете то? При добавлении сабмит кнопки в форму в Opera, FF 42,43, 43.0.2 все ок.
В коде не вижу ни кнопки субмит, ни попытки отправки из JSа


вот тут же отправляю:

CODE (javascript):
скопировать код в буфер обмена
  1. document.addEventListener("DOMContentLoaded", function() {
  2.      document.getElementById('new').addEventListener('submit', function(){console.log(122);})
  3. });


Нужен ФФ. В ие тоже не работает, да он и не нужен
 
 Top
IllusionMH
Отправлено: 11 Января, 2016 - 12:31:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Contr, это навешивание обработчика события. Где отправка формы?

Romeo4755, а можно пример кода для
Romeo4755 пишет:
getElementById внутри другого id не работает

знаю что getElementById доступен только для Document и DocumentFragment объектов (если не ошибся) и что если несколько одинаковых id (невалидная разметка) то возвращается только первый.
Но чтобы вложенность блоков с ID к которым обращаются по ID на что-то влияло - впервые слышу.
 
 Top
Contr
Отправлено: 11 Января, 2016 - 13:29:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




IllusionMH,
отправка формы идет асинхронно, через new xmlHTTPRequest. Суть в том, что обработчик не навешивается. Вот я и думаю, почему
 
 Top
IllusionMH
Отправлено: 11 Января, 2016 - 15:08:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Contr, лицовруках... да мне побоку как она отправляется(аякс, сокеты, сохраняется в локалсторедж или в урлу айфрэйма), мне важно как сабмит вы пытаетесь триггерить, т.к. в примере https://jsfiddle[dot]net/pgew8382/ (копипаста + кнопочка сабмит) - всё работает везде.
onsubmit="return false;" нафиг не нужно если в обработчике можно поймать и обработать, при этом можно будет только предотвратить отправку, а не предотвратить всплытие.

(Отредактировано автором: 11 Января, 2016 - 15:09:19)

 
 Top
Contr
Отправлено: 12 Января, 2016 - 07:09:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




IllusionMH пишет:

Contr, лицовруках... да мне побоку как она отправляется(аякс, сокеты, сохраняется в локалсторедж или в урлу айфрэйма), мне важно как сабмит вы пытаетесь триггерить, т.к. в примере https://jsfiddle[dot]net/pgew8382/ (копипаста + кнопочка сабмит) - всё работает везде.
onsubmit="return false;" нафиг не нужно если в обработчике можно поймать и обработать, при этом можно будет только предотвратить отправку, а не предотвратить всплытие. А без <input type="submit" value='Submit form' /> можно?

Можно с style="display: none;", но это как-то коряво/
Если кто-то скажет, что форма без кнопки сабмит- не форма, то можно привести пример, где форма будет и без этой кнопки отвечать без события submit


А без <input type="submit" value='Submit form' /> можно?

Можно с style="display: none;", но это как-то коряво/
Если кто-то скажет, что форма без кнопки сабмит- не форма, то можно привести пример, где форма будет и без этой кнопки отвечать на события submit

(Отредактировано автором: 12 Января, 2016 - 07:10:30)

 
 Top
DelphinPRO
Отправлено: 12 Января, 2016 - 09:54:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Contr
покажи уже как форму отправляешь.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Contr
Отправлено: 12 Января, 2016 - 10:15:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




DelphinPRO,
$.post()
(Добавление)
https://jsfiddle[dot]net/ce810fy4/14/

Вон, сделал 2 формы, одна сабмитится, другая нет. Почему?

Есть у кого ссылка на стандарт, где описывается такое поведение? Не понял
 
 Top
IllusionMH
Отправлено: 12 Января, 2016 - 12:03:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Contr, что должно стать условием для отправки формы? Нажатие на кнопку Энтер или или другая кнопка скриптом триггерит сабмит?
Если энтер, то это работает только в формах из 1 поля, если нужно чтобы в любой форме с последним сабмиталось - навешивайте событие и проверяйте коды.

https://www[dot]w3[dot]org/TR/html5/forms[dot]html
 
 Top
Contr
Отправлено: 12 Января, 2016 - 12:56:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




IllusionMH пишет:
Contr, что должно стать условием для отправки формы? Нажатие на кнопку Энтер или или другая кнопка скриптом триггерит сабмит?
Если энтер, то это работает только в формах из 1 поля, если нужно чтобы в любой форме с последним сабмиталось - навешивайте событие и проверяйте коды.

https://www.w3.org/TR/html5/forms.html

Enter
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB