Назначение onlcick элементу родительского окна
Доброго времени суток.
Из дочернего окна создаю новую ячейку родительскому окну td. Одновременно пытаюсь присвоить ей событие на отравку сабмит. newel.onclick = function() {document.forms.form_save_ent.submit();}; Упорно работать не хочет. Помогите советом. Спасибо |
Цитата:
|
var parenttbl = window.opener.document.getElementById(\"row_panel\"); var newel = window.opener.document.createElement('td'); var elementid = document.getElementsByTagName(\"td\").length newel.setAttribute('id',elementid); newel.onclick = function() {document.forms.form_save_ent.submit();}; parenttbl.appendChild(newel); Здесь создаю ячейку td в таблице и одновременно прикрепляю onclick. В результате ошибка "Uncaught TypeError: Cannot read property 'submit' of undefined" |
ToD, у тебя не верное представление о создании тестовых примеров... :(
Оных тут валом! Просто посмотри как это делают другие. ;) |
ToD, вот работающий пример...
tmp.csp <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='http://code.jquery.com/jquery-latest.js'></script> <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> function test(){ window.open('tmp1.csp'); }; </script> </head> <body> <div id='test'></div> <button onclick='test();'>Go</button> </body> </html> tmp1.csp <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='http://code.jquery.com/jquery-latest.js'></script> <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> var ow = window.opener.document var op = ow.getElementById('test'); var o = ow.createElement('button'); o.innerHTML='Test'; o.onclick = function() {alert('Ok');}; op.appendChild(o); alert('End') </script> </head> <body> </body> </html> Но работать будет только на неком сервере. Если просто файлы скопировать и запустить - работать не будет. :nono: |
Ksa, спасибо за разъяснения. Выкладываю часть кода.
exec.php(родительское) ..... function DoSubmit(){ var w = 450; var h = 200; var leftvar = (screen.width-w)/2; var topvar = (screen.height-h)/2*0.5; var new_window = window.open(\"\", \"kv2\", \"resizable=no, location=no, width=\"+w+\",height=\"+h+\",left=\"+leftvar+\",top=\"+topvar+\"\"); hid_val = document.getElementById(\"field_entered_surname\").value; document.getElementById(\"form_surname_pac\").value = hid_val; document.forms.form_surname_pac_search.submit(); } ..... </tr> <tr align = \"center\" height = \"5%\" id=\"row_panel\"> <td class = \"close\" id = \"td_clsp\" onclick = \"window.close();\" colspan = \"2\"> Закрыть </td> </tr> <form action = \"search_pac.php\" method = \"POST\" name = \"form_surname_pac_search\" target = \"kv2\"> <input type = \"hidden\" id = \"form_surname_pac\" name = \"surname_pac\" value = \"\"> </form> </table> <form method = \"POST\" name = \"form_save_ent\" id = \"form_id\"> <input type = \"hidden\" id = \"selected_id_pac\" name = \"id_pac\" value = \"\"> </form> search_pac.php (дочернее) .... var parenttbl = window.opener.document.getElementById(\"row_panel\"); var newel = window.opener.document.createElement('td'); var elementid = document.getElementsByTagName(\"td\").length newel.setAttribute('id',elementid); newel.innerHTML = \"Запись\"; newel.onclick = function() {document.forms.form_save_ent.submit();}; parenttbl.appendChild(newel); window.close(); .... |
Спасибо всем за помощь. Решил самостоятельно более простым путем.
Изначально создал ячейку таблицы, назначил ей свойство style = \"display: none;\" . Там прописал и onclick и назначил ID. Потом в дочернем окне просто убрал это свойство через DOM. |
Часовой пояс GMT +3, время: 13:25. |