Действие после нажатия на кнопку
Добрый день всем!
Помогите пожалуйста разобраться с небольшой задачкой. Есть всплывающее окно быстрого заказа, в нем есть 2 кнопки "Отправить заказ" и "Отменить": <div class="standart-button"><a onclick="/*checkFastOrder();*/sendQuickAjaxOrder();return false;" href="#"><span>Отправить заказ</span></a></div> <div class="undo-button"><a onclick="$('#fastq').hide(); return false;" href="#"><span>Отменить</span></a></div> Как сделать так, чтобы при нажатии на кнопку "Отправить заказ" при срабатывании sendQuickAjaxOrder() {т.е. верном вводе всех полей формы} кнопка "Отправить заказ" переименовывалась в "Продолжить покупки" и закрывала вспл. окно (т.е. вела на страницу купленного товара), а кнопка "Отменить" просто пропадала. Буду очень благодарна, если поможете. |
Вам код написать или логику?
При успешном выполнении функции (success), скрыть кнопки «Отправить» и «Отменить» (это можно сделать обратившись к классам блоков "undo-button" и тд) и показать кнопку «Продолжить покупки», экшеном у которой будет закрытие окна. |
Цитата:
После отправки, то есть в нормальных терминах - оформления - заказа выставляется счет к оплате. |
Цитата:
Цитата:
|
Ayaks,
тогда давай код выкладывай |
второй click по той же кнопке
<script type="text/javascript"> function check1(otvet01){ var show = document.getElementById("otvet01"); var truth = 0; if(true){ show.style.display = 'block', document.getElementById("otvet01").innerHTML="правильный ответ: индексы 0,1,3", document.getElementById("otvet01").style.color="green"; truth++; } if(true && truth == 2){ show.style.display = 'none'; } } </script> <div id="wrap1"> <input id="but1" type="button" value="check" onClick="kontroll();"> <div id="otvet1"> Ответ </div> </div> <button onclick="check1('otvet01');">Правильный ответ</button> <div id="otvet01"></div> <br> всем привет. помогите пожалуйста с кнопкой. хочется, чтобы запись правильного ответа скрывалась при повторном нажатии на кнопку "Правильный ответ"? Как это можно сделать используя только JS, без jQuery?:help: |
Так пойдет?
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> function check1(otvet01){ var show = document.getElementById("otvet01"); var truth = 0; show.style.display = (show.style.display == 'none')?doSmth():hideText(); function doSmth(){ show.style.display = 'block', document.getElementById("otvet01").innerHTML="правильный ответ: индексы 0,1,3", document.getElementById("otvet01").style.color="green"; truth++; } function hideText(){ show.style.display = 'none'; } } </script> <div id="wrap1"> <input id="but1" type="button" value="check" onClick="kontroll();"> <div id="otvet1"> Ответ </div> </div> <button onclick="check1('otvet01');">Правильный ответ</button> <div id="otvet01"></div> <br> </body> </html> |
спасибо.
но мне кажется, что для одного раза пойдет, а если таких 20, это 20 раз такое писать прийдется |
Lecseus,
поиск открывашка |
уважаемый рони, скажите, вообще возможно сделать одну функцию на всех, чтобы каждая функция обращалась к этой одной общей и при определенном условии, например при else все функции обращались к этой общей? надеюсь, я доступно объяснил.
function hideT(){ show.style.display='none'; } ведь если я правильно понимаю, переменную show можно задать один раз, во второй раз она уже должна быть show2, например. также как и само название функции. а можно ли сделать hideT(){} общей? |
Lecseus,
не понял ничего что вы написали, но ответ да можно - наверняка вам нужна открывашка, что-бы вы не придумали. функция будет одна -- без всяких show2 (понять бы только вас) |
ну, допустим у меня есть кнопка, которая открывает какой-то блок. и я хочу, чтобы она же этот блок закрывала (она - кнопка) по второму щелчку. это я уже реализовал. но, допустим, у меня много таких кнопок, можно ли чтобы одна единственная функция, которая закрывает конкретный блок, закрывала бы и другие блоки связанные с конкретными кнопками, в зависимости от того, с какой кнопкой я в данный момент работаю?
то есть на много кнопок повесить одну и ту же функцию. |
Lecseus,
это конечно очень слабенький пример я навожу <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div><button data-cl="one" onclick="HideOrShow(event, this)">Press 1</button> <span class="one">Hello 1</span></div> <div><button data-cl="two" onclick="HideOrShow(event, this)">Press 2</button> <span class="two">Hello 2</span></div> <script> function HideOrShow(event, el){ if(el.getAttribute('data-cl') == el.nextElementSibling.className){ el.nextElementSibling.style.display = ( el.nextElementSibling.style.display == 'block'?'none':'block') } } </script> </body> </html> |
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function check1(otvet1){ var show = document.getElementById("otvet1"); show.style.display = (show.style.display == 'none')?doit():hideT(); function doit(){ show.style.display = 'block', show.innerHTML="правильный ответ:3", show.style.color="green"; } function hideT(){ show.style.display='none'; } } function check2(otvet2){ var show = document.getElementById("otvet2"); show.style.display = (show.style.display == 'none')?doit():hideT(); function doit(){ show.style.display = 'block', show.innerHTML="правильный ответ:двацать", show.style.color="green"; } function hideT(){ show.style.display='none'; } } </script> </head> <body> <button onClick="check1('otvet1');">Правильный ответ</button> <div id="otvet1"></div> <br> <button onClick="check2('otvet2');">Правильный ответ</button> <div id="otvet2"></div> <br> </body> </html> о, заработало.. коряво немного. только не могу разобраться, что нужно изменить, чтобы по первому щелчку выскакивал текст, а не по двойному щелчку? |
Lecseus,
вот немного подправил <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <button onClick="check('otvet01');">Правильный ответ</button> <div id="otvet01">Answer 1</div> <br> <button onClick="check('otvet02');">Правильный ответ</button> <div id="otvet02">Answer 2</div> <br> <script> function check(answer) { var target = event.target; var elem = document.getElementById(answer); if (!elem) return; return elem.style.display = ( elem.style.display == 'none'?'block':'none') } </script> </body> </html> |
спасибо, отлично работает
|
Часовой пояс GMT +3, время: 16:40. |