При подгрузке методом .load не работает input type=file
Здравствуйте! В layout подготовил область, для подгрузки попапов, сами попапы выполнены отдельными PartialView (речь идет об ASP.NET MVC). Почему то при подгрузке содержимого с помощью JQ функции .load, <input type="file" /> не работает - не появляется диалог выбора файла, если выношу кнопку за границы попапа - в основное окно, то кнопка работает прекрасно, не в курсе в чем может быть дело?
|
Цитата:
tmp.csp <!DOCTYPE html> <html ng-app> <head> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="http://code.angularjs.org/1.1.4/angular.min.js"></script> <link rel='stylesheet type=text/css href=tmp.css' /> --> <style type='text/css'> </style> <script type='text/javascript'> $(function(){ $('#test').load('tmp1.csp'); }); </script> </head> <body> <div id='test'></div> </body> </html> tmp1.csp <input type='file' /> Таки работает! |
Кнопка с которой открывается popup
<input type="button" onclick="$('.popup-container').load('@Url.Action("Index", "Popup")'); document.getElementById('popup').style.visibility = 'visible';" value="@GlobalRes.SelectFile" /> Область куда вставляется попап: <div id="popup" style="visibility:hidden"> <div class="popup-cell"> <input type="file" /> <div class="popup-container"> </div> </div> </div> html в PartialView: <div class="popup-root"> <input type="file" /> </div> не работает:( |
sameness, может осилишь смастерить нормальный тестовый пример? :D
Цитата:
|
Все, спасибо! Меня осенило:) все дело в когда то добавленном коде исключающем бабблинг:
$(".popup-root").click(function (e) { return false; }); |
Цитата:
tmp.csp <!DOCTYPE html> <html ng-app> <head> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="http://code.angularjs.org/1.1.4/angular.min.js"></script> <link rel='stylesheet type=text/css href=tmp.css' /> --> <style type='text/css'> </style> <script type='text/javascript'> </script> </head> <body> <input type="button" onclick="$('.popup-container').load('tmp1.csp'); document.getElementById('popup').style.visibility = 'visible';" value="Test" /> <div id="popup" style="visibility:hidden"> <div class="popup-cell"> <input type="file" /> <div class="popup-container"> </div> </div> </div> </body> </html> tmp1.csp <div class="popup-root"> <input type="file" /> </div> |
А как тогда бабблинг исключить правильно? Только вверх, что бы вниз по модели DOM он распространялся все таки
|
Цитата:
Цитата:
<input type="file" /> ? :blink: |
|
>А как тогда бабблинг исключить правильно? Только вверх, что бы вниз по модели DOM он распространялся
События всплывают (вверх), но чтобы они еще и тонули (вниз), это уже не иначе как эксклюзив. |
Цитата:
|
Как обрабатывать события так же есть статейка...
http://javascript.ru/tutorial/events/crossbrowser Некий пример, где так же работает инпут... <!DOCTYPE html> <html ng-app> <head> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="http://code.angularjs.org/1.1.4/angular.min.js"></script> <link rel='stylesheet type=text/css href=tmp.css' /> --> <style type='text/css'> #test { padding: 50px; border: 1px solid; } </style> <script type='text/javascript'> $(function(){ $('#test').click(function(event){ event=event.target||event.srcElement; if (event.tagName=='DIV'){ alert('Выполняем действия...'); }; }); }); </script> </head> <body> <div id='test'> <input type='file' /> </div> </body> </html> |
Часовой пояс GMT +3, время: 14:45. |