Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Показать или скрыть target=blank (https://javascript.ru/forum/dom-window/40480-pokazat-ili-skryt-target%3Dblank.html)

rafaello 07.08.2013 12:09

Показать или скрыть target=blank
 
Доброго дня!
Прошу простить за простой вопрос, но, действительно, пока джава скрипт для меня дается с трудом.
Вобщем есть форма, а внутри нее несколько кнопок submit

<form action="http://tratata.php" target="blank" name="myform" method="post">
..... здесь код формы.........
<input type="submit" name="join" value="join777">
<input type="submit" name="info" value="info777">
<input type="submit" name="create" value="create777">
</form>


Задача:
Только лишь при нажатии на
<input type="submit" name="join" value="join777">

показать
target="blank"
во всех других случаях target="blank" надо не показывать (убрать).
Спасибо!

skrudjmakdak 07.08.2013 12:18

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html> <head>

<body>
<form action="http://tratata.php" target="blank" id="form" name="myform" method="post">
<input type="submit" name="join" value="join777" onclick="clk(this);">
<input type="submit" name="info" value="info777" onclick="clk(this);">
<input type="submit" name="create" value="create777" onclick="clk(this);">
</form>

<script type="text/javascript"> 
var form = document.getElementById('form');
function clk(ths)
	{
	form.setAttribute('target', ths.getAttribute('name') == 'join' ? 'blank' : '');
	}
</script> 
</body>
</html>

rafaello 07.08.2013 12:27

Здорово как!!! Спасибо!


А есть ли необходимость прописывать
onclick="clk(this);"
у субмитов "info" и "create"? Ведь они же не участвуют в описании функции?

rafaello 07.08.2013 12:48

Сам понял, что глупый вопрос.

ksa 07.08.2013 13:21

Цитата:

Сообщение от rafaello
Вобщем есть форма, а внутри нее несколько кнопок submit

submit на форме должен быть один... Иначе это уже не submit...

skrudjmakdak 07.08.2013 13:29

Цитата:

Сообщение от ksa (Сообщение 266264)
submit на форме должен быть один... Иначе это уже не submit...

объясните почему?

ksa 07.08.2013 13:33

Цитата:

Сообщение от skrudjmakdak
объясните почему?

Что ты вкладываешь в понятие "кнопка типа submit"?

skrudjmakdak 07.08.2013 13:43

обычная кнопка, по нажатию которой происходит отправка формы.
не так??

ksa 07.08.2013 13:44

Цитата:

Сообщение от skrudjmakdak
объясните почему?

Для меня уже достаточно вот этой иллюстрации...

<form>
	<input type='text' />
	<input type='button' value='test' />
	<input type='submit' value='submit' />
	<input type='submit' value='submit' />
	<input type='submit' value='submit' />
	<input type='submit' value='submit' />
	<input type='submit' value='submit' />
</form>
<script type="text/javascript">
document.getElementsByTagName('input')[0].focus();
</script>


<form>
	<input type='text' />
	<input type='button' value='test' />
	<input type='submit' value='submit' />
	<input type='button' value='test' />
	<input type='button' value='test' />
	<input type='button' value='test' />
	<input type='button' value='test' />
	<input type='button' value='test' />
	<input type='button' value='test' />
</form>
<script type="text/javascript">
document.getElementsByTagName('input')[0].focus();
</script>


А ведь у формы есть еще стандартная реакция на нажатие <Enter>...

ksa 07.08.2013 13:45

Цитата:

Сообщение от skrudjmakdak
обычная кнопка

Вопросов больше не имею... :D

skrudjmakdak 07.08.2013 13:51

Цитата:

Сообщение от ksa (Сообщение 266278)
А ведь у формы есть еще стандартная реакция на нажатие <Enter>...

но отправка отрабатывает даже при нескольких сабмитах..

skrudjmakdak 07.08.2013 13:51

Цитата:

Сообщение от ksa (Сообщение 266281)
Вопросов больше не имею... :D

дык.. я вопрос задавал, а не вы))

rafaello 07.08.2013 19:30

Цитата:

А ведь у формы есть еще стандартная реакция на нажатие <Enter>
Здесь все дело в обработчике php, куда отправляется пост запрос. При условии, что у всех субмитов разные названия и значения, он сортирует в зависимости от этого....

Deff 07.08.2013 21:02

Цитата:

Сообщение от ksa
submit на форме должен быть один... Иначе это уже не submit...

вообще в спецификации нет ограничений и часто, при длинных полях, ксать в ранних phpBB-форумах в Админке, в стиле форума и в админ настройках, поскольку туча textarea стояла во всю ширину и по длине страницы занимали боле полутора - двух экранов - кнопки submit ставили и сверху и снизу формы

danik.js 07.08.2013 21:50

Цитата:

Сообщение от ksa
submit на форме должен быть один... Иначе это уже не submit...

Это еще почему? Бывает нужно например сделать две кнопки, у каждой свое значение и имя.

HTML5 фишка:

<form action="http://javascript.ru">
    <button type="submit">Открыть в этом окне</button>
    <button type="submit" formtarget="_blank">Открыть в новом окне</button>
</form>


Работает конечно же не везде. Но в старых браузерах можно возместить скриптом.

Deff 07.08.2013 22:01

danik.js,
Не наю - у меня работает на phpBB-форумах начиная с ИЕ6 - более старые не пробовал.. хотя есть в загашнике

danik.js 08.08.2013 07:13

Deff, я вобще то про formtarget ;)

ksa 08.08.2013 13:14

Цитата:

Сообщение от danik.js
Бывает нужно например сделать две кнопки, у каждой свое значение и имя.

Что мешает сделать это простыми кнопками?

Цитата:

Сообщение от Deff
вообще в спецификации нет ограничений

Да. :yes:

danik.js 08.08.2013 15:33

Цитата:

Сообщение от ksa
Что мешает сделать это простыми кнопками?

Например то, что тогда получатся простые кнопки? Мне то нужны сабмитящие.
ksa, если тебе воображение не позволяет придумать кейс для использования, не нужно убеждать других в том что таких кейсов не бывает.

ksa 09.08.2013 11:02

Цитата:

Сообщение от danik.js
не нужно убеждать других

Хорошо... :D

rafaello 09.08.2013 14:21

Цитата:

А ведь у формы есть еще стандартная реакция на нажатие <Enter>
При нажатии на <ENTER> срабатывает самая первая (ближняя к тегу <form>) кнопка <submit>, проверил несколько раз.
А также, при условии, что текстовое поле <input> должно быть активным (фокус).
Просто это обстоятельство надо учитывать при составлении условия обработки запроса в файле-приемнике.
А в остальном, отсылается при нажатии на <submit>


Часовой пояс GMT +3, время: 02:40.