[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как отправить форму при нажатии на кнопку?
zvezda_t
Здравствуйте!

Вот у меня есть несколько кнопок, как понять какая из них нажата, если я хочу форму отправлять только после проверки javascript-ом


<form name='form11' method='POST'>
<input
id='save1' name='save1' type='button' onClick='submit_11()' value='сохранить'>
<input
id='save2' name='save2' type='button' onClick='submit_11()' value='сохранить2'>
....
</form>


функция submit_11()
проверяет условие, а затем если условия выполнены осуществляет отправку формы
document.form11.submit(); 


как правильно отправку сделать, чтоб понятно было какая кнопка нажата???



Спустя 1 минута, 24 секунды (12.05.2010 - 14:19) Lenarfate написал(а):
document.getElementById('save1')

и
document.getElementById('save2')

??может так?

Спустя 4 минуты, 22 секунды (12.05.2010 - 14:23) zvezda_t написал(а):
а submit() - куда?

Спустя 2 минуты, 35 секунд (12.05.2010 - 14:26) zvezda_t написал(а):
почему при выборе элемента списка таких проблем нет?

Спустя 7 секунд (12.05.2010 - 14:26) Lenarfate написал(а):
ну вот внутри этой функции и проверяй по id поля какая была нажата

Спустя 14 минут, 13 секунд (12.05.2010 - 14:40) zvezda_t написал(а):
Цитата
проверяй по id поля какая была нажата

как это сделать?????

Спустя 1 минута, 15 секунд (12.05.2010 - 14:41) Lenarfate написал(а):
условиями.
if (то то)
{
то то
}

Спустя 9 минут, 51 секунда (12.05.2010 - 14:51) zvezda_t написал(а):
Вы издеваетесь?
я же и спрашиваю - какое условие покажет что была нажата определённая кнопка?

Спустя 6 минут, 30 секунд (12.05.2010 - 14:58) Lenarfate написал(а):
а тут все экстрасенсы и знают какой там у вас код

Спустя 6 минут, 29 секунд (12.05.2010 - 15:04) zvezda_t написал(а):
я же сказала какие кнопки.. что еще то нужно?

Спустя 12 минут, 4 секунды (12.05.2010 - 15:16) andyp написал(а):
Во-первых у события event есть сво-ство target, которое будет в Вашем случае указывать на элемент кнопки save1 или save1.
А также можно передать в функции параметр, любой который бы идентифицировал кнопку, например саму кнопку.
Вместо onClick='submit_11()' пишите onClick='submit_11(this)'.
Далее в функцию function submit_11() добавляете параметр:
function submit_11(element) и внутри нее проверяете какая эта кнопка по ее id:
if (element.id=='save1') {
//это кнопка save1
} else {
// это кнопка save2
}

Спустя 15 часов, 39 минут, 51 секунда (13.05.2010 - 06:56) zvezda_t написал(а):
andyp, спасибо Вам большое!
Как определить какая из кнопок нажата теперь понимаю)))
(я к JavaScript на "Ваше Величество" ... biggrin.gif )

а отправку формы с помощью
document.form11.submit();
(или какой то другой функцией) мне можно сделать так, чтобы переменная $_POST['save1'] была определена?

Спустя 3 часа, 57 минут, 26 секунд (13.05.2010 - 10:53) andyp написал(а):
поменять тип кнопки на submit.
<input id='save1' name='save1' type='submit' onclick='submit_11()' value='сохранить' />

Спустя 2 часа, 6 минут, 20 секунд (13.05.2010 - 13:00) zvezda_t написал(а):
но тогда уже нет смысла в функции submit_11(), форма будет отправляться при нажатии на кнопку, а не после проверок в submit_11().
нельзя через функцию JS отправить форму, а потом пыхом условия проверять в зависимости от нажатой кнопки? rolleyes.gif

Спустя 9 минут, 4 секунды (13.05.2010 - 13:09) twin написал(а):
Функцию проверки лучше повешать на onsubmit формы. Тогда отпадет вообще надобность идентификации кнопки скриптом.

Спустя 43 минуты, 33 секунды (13.05.2010 - 13:52) andyp написал(а):
Цитата (zvezda_t @ 13.05.2010 - 10:00)
но тогда уже нет смысла в функции submit_11(), форма будет отправляться при нажатии на кнопку, а не после проверок в submit_11().
нельзя через функцию JS отправить форму, а потом пыхом условия проверять в зависимости от нажатой кнопки?  rolleyes.gif

Сначала отработает функция submit_11. А потом уже будет отправка формы.
Если после проверок в функции submit_11 отправлять форму не нужно, то нужно прервать обработку события onclick на кнопке.
Например, это можно сделать так:
вместо
<input id='save1' name='save1' type='submit' onclick='submit_11()' value='сохранить' />
пишите
<input id='save1' name='save1' type='submit' onclick='return submit_11()' value='сохранить' />


И если по результатам работы функции submit_11 отправлять форму не надо, то она должна возвратить false. Вообщем, чтобы без всяких "если", в конец функции добавьте return false и отправляйте форму внутри этой функции, когда надо.

Спустя 1 час, 23 минуты, 19 секунд (13.05.2010 - 15:16) zvezda_t написал(а):
Цитата
Функцию проверки лучше повешать на onsubmit формы. Тогда отпадет вообще надобность идентификации кнопки скриптом.


спасибо большое! именно это мне и было нужно)))
проверяю условие JavaScript-ом, затем если условие прошло - происходит отправка))

а вот если не на все кнопки мне нужно условие js-проверять... тогда как?

Спустя 1 минута, 48 секунд (13.05.2010 - 15:17) zvezda_t написал(а):
andyp, спасибо! Вы ответили на все мои вопросы!
УРА! теперь всё работает))))))))

Спустя 6 минут, 30 секунд (13.05.2010 - 15:24) andyp написал(а):
Вот рабочий во всех браузерах пример:


<script>
function
test(knopka) {
if (knopka.name=='save1') {
// проверяем на уверенность пользователя
var c = confirm('Вы уверены?');

// отправляем форму
if (c) {
knopka.form.submit();
} else {
return false;
}
}
else {
alert('Не хочу отправлять форму. Нажми нужную кнопку!');
return false;
}

return true;
}
</script>

<form
method="post" action="">
<input
type="text" value="value" name="field" />
<input
type="submit" name="save1" value="save1" onclick="return test(this);" />
<input
type="submit" name="save2" value="save2" onclick="return test(this);" />
<input
type="submit" name="save3" value="Нажми без проверок" />
</form>



_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.