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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает кнопка submit с innerhtml 
V
    Опции темы
maxipub
  Дата 27.1.2014, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

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



Добрый день!

Код

<script type="text/javascript">
function make_form()
{
    var div = document.getElementById('form_div');
    div.innerHTML = '<form action="/"><input type="submit" value="submit the form!" /></form>';
    return true;
}
</script>

<div id="form_div" onclick="make_form()">make_form()</div>


При клике по кнопке "submit the form!" форма не отправляется! Почему это не работает, что делать, и самое главное - кто виноват!? smile Заранее спасибо!

Добавлено через 12 минут и 19 секунд
UPD: попробовал через метод .html() jquey - все ок. Но хотелось бы без лишних библиотек с таким примитивом работать.
PM MAIL   Вверх
ksnk
Дата 27.1.2014, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Ну дык! onclick-то кто будет отменять? по клику появляется новая форма. и так до просветления ;)

Код

 var div = document.getElementById('form_div');
 div.onclick='';  
... 


например - так


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
  Дата 27.1.2014, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

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



Как же тупо. smile  smile  smile 


ksnk, а не подскажите еще, почему если сделать innerhtml так:

Код

<script type="text/javascript">
function make_form()
{
    var div = document.getElementById('form_div');
    div.onclick = '';
    div.innerHTML = '<form action="/">';
    div.innerHTML+= '<input type="submit" value="submit the form!" />';
    div.innerHTML+= '</form>';
    return true;
}
</script>
<div id="form_div" onclick="make_form()">make_form()</div>


Все снова перестает работать?
PM MAIL   Вверх
ksnk
Дата 27.1.2014, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



div.innerHTML = '...'; - это не присвоение значения пременной, а сложная операция. Вставляется целая и полная  html конструкция. С открывающим и закрывающим тегом. Если нет закрывающего - он добавляется. достаточно посмотреть в отладчике, что там получается. После первого присваивания в innrHTML находится <form></form>, потом после закрытго form дописывается <input ...>. Закрывающий тег просто игнорируется.
Нужно присваивать сразу всю строку.

Это сообщение отредактировал(а) ksnk - 27.1.2014, 20:01


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 28.1.2014, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

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



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


 




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


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

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