Form target

dakata__92

Super Moderator
Защо така формата се отваря в нов прозорец:
Код:
<form method='POST' action='aside.php'  target='myWindow' onSubmit="window.open('', this.target, 'width=100,height=100,scrollbars=yes');" >
http://jsfiddle.net/b8z66eup/

а така не иска...

Код:
<script type="text/javascript">
function open(name){
	window.open('',name, 'width=100,height=100,status=yes,resizable=yes,scrollbars=yes');
}
</script>
<form method='POST' action='aside.php'  target='myWindow' onSubmit="open(this.target);" >
http://jsfiddle.net/b8z66eup/1/

Искам да направя всички форми при сюбмит да се отварят в такъв попъп прозорец, но уви някъде греша. Ако е възможно само с JS да стане това ще съм благодарен ако помогнете. Имам от порядъка на 10 форми от които потребителя да избере и да сюбмитне при което искам да се отворят по този начин в нов прозорец.
 
Това е решението извинявам се за темата.
[js]
function openWindow(url,name){
var newWindow = window.open(url, name, 'width=1200,height=1200,scrollbars=yes');
if (!newWindow) return false;
return newWindow;
}
[/js] :)
 
Смени името на функцията "open". Така както си го написдал - onSubmit="open(this.target);" не викаш твоята ф-я а windows.open();
HTML:
<script type="text/javascript">
function open1(name){
   window.open('',name, 'width=100,height=100,status=yes,resizable=yes,scrollbars=yes');
}
</script>
<form method='POST' action='aside.php'  target='myWindow' onSubmit="open1(this.target);" >
<input type="submit"/>
</form>
[/html]
 
imagination каза:
Смени името на функцията "open". Така както си го написдал - onSubmit="open(this.target);" не викаш твоята ф-я а windows.open();
HTML:
<script type="text/javascript">
function open1(name){
   window.open('',name, 'width=100,height=100,status=yes,resizable=yes,scrollbars=yes');
}
</script>
<form method='POST' action='aside.php'  target='myWindow' onSubmit="open1(this.target);" >
<input type="submit"/>
</form>
[/html]

Усетих се малко по-късно, че това е проблема. Впрочем имам друг въпрос как мога да проверя дали някоя от формите на страницата е сюбмитната?
Мислех нещо подобно че ще е но не се сещам как да продължа:

http://jsfiddle.net/0414tzu9/1/

(това не е правилно но за него се сетих първо с onsubmit...)
 
Решението е да не слагаш лисенери в цикъл или да използваш този метод:

[js]for ( ... i < x... ) {
(function(i){
// тук вече спокойно ползваш i
})(i);
}[/js]

Ето ти решението: http://jsfiddle.net/0414tzu9/2/

А тук е описано какъв е проблемът: http://tobyho.com/2011/11/02/callbacks-in-loops/

(накратко - когато извърти цикъла, i става 100 да речем, и който и бутон да цъкнеш, то ти alert-ва тази стойност. Използвайки самоизвикващата се функция то всеки път стойността се копира и се запазва на всяка итерация)
 

Back
Горе