Вот у меня есть несколько кнопок, как понять какая из них нажата, если я хочу форму отправлять только после проверки 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 (то то)
{
то то
}
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:
А также можно передать в функции параметр, любой который бы идентифицировал кнопку, например саму кнопку.
Вместо 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 на "Ваше Величество" ...
)
а отправку формы с помощью
Как определить какая из кнопок нажата теперь понимаю)))
(я к JavaScript на "Ваше Величество" ...

а отправку формы с помощью
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 отправить форму, а потом пыхом условия проверять в зависимости от нажатой кнопки?
нельзя через функцию JS отправить форму, а потом пыхом условия проверять в зависимости от нажатой кнопки?

Спустя 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 отправить форму, а потом пыхом условия проверять в зависимости от нажатой кнопки? ![]() |
Сначала отработает функция 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)