Назначение 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, время: 02:11. |