Привет, всем =) Я бился над проблемой 3 дня и наконец оно заработало так как я задумал.
Задача: Надо чтобы каждая кнопка имела свой action обработчик. Первая кнопка - “предварительный просмотр”, при нажатии на нее данные с формы должны передаваться в cgi-сценарий, который с определенными параметрами, генерировал эту самую форму. Вторая кнопка - обычный submit.
У меня есть форма отправки поста:
<form method="post" action="./bin/add_new_post.cgi"> <input type="text" size="75%" class="text-widget" name="post_title" value="<TMPL_VAR "POST_TITLE">"> <div id="textDiv" style="width:100%;height:200px;position:relative;"> <textarea id="textBox" name="content" class="textarea"><TMPL_VAR "ORIGINAL_POST_CONTENT"></textarea> <div id="handleBottom" style="width:100%; height:5px; background-color:#C0C0C0; position:absolute; top:195px; cursor:s-resize;"></div> </div> <button class="button" onclick="preview(this.form);">Предварительный просмотр</button> <input type="submit" class="button" value="Добавить пост"> </form>
Javascript функция preview, выполняемая при нажатии на 1 кнопку
<script language="javascript"> function preview(oForm) { var oNewForm = oForm; var oNewField = document.createElement('INPUT'); oNewField.type = 'post'; oNewField.name = 'add'; oNewField.value = 'post'; oNewForm.appendChild(oNewField); oNewForm.action='index.cgi?add=post'; oNewForm.submit(); } </script>
oNewField.name = ‘add’ - это имя параметра oNewField.value = ‘post’ - его значение.
oNewForm.action=’index.cgi?add=post’ если так передать праметры в сроке, то при выполнении функции они не будут восприняты скриптом (но в заголовке они будут присутствовать). Я их оставил для красоты..
Можно использовать hidden значение и передавать в подпрограмму флаг (это может быть полезным если надо пределить какая кнопка была нажата):
... var oNewField = document.createElement('INPUT'); oNewField.type = 'hidden'; oNewField.name = 'flag'; oNewField.value = true; oNewForm.appendChild(oNewField); ...
Ну вот и все, что я хотел рассказать сегодня..
PS: Пользуясь случаем передаю привет всем добрым людям, которые помагали мне =)

Кажется в свое
Кажется в свое время решал подобную задачу при помощи разных значений в свойстве value кнопок submit:
гм. а куда идет
гм. а куда идет value у submit?
Скажи плиз, а то я незнал, незнал и вдруг забыл =)
Quote: разных
разных значений в свойстве value кнопок submit:
Если я правильно понял то обработчик все равно будет один.
------------------
Ой, забыл name прописать:
Ой, забыл name прописать:
И в submit будет либо preview, либо add.
Да, один :-).
разных значений в свойстве value кнопок submit:
Если я правильно понял то обработчик все равно будет один.
------------------
Да, один :-). Поэтому и уточнил: "решал подобную задачу".
Кстати, зачем для предварительного просмотра и непосредственно отправки разные обработчики,
ведь у этих действий много общего?
Можно и один,
Можно и один, просто мне так удобнее :)
------------------