JavaScript и натиснат бутон
26 отговора
709 прегледа
JavaScript и натиснат бутон
Има ли начин във форма с два субмит бутона да разбера кой от двата е натиснат?
Re: JavaScript и натиснат бутон
Направи си го просто с два бутона
и една функция която им я подаваш на OnClick ивента
function check(button) {
if (button.value == "button") {
document.test.submit();
}
else if (button.value == "button1") {
alert("bla");
}
}
<input type="button" name="button1" value="button" onClick="check(document.test.button1);">
Айде със здраве.
Just a human.
и една функция която им я подаваш на OnClick ивента
function check(button) {
if (button.value == "button") {
document.test.submit();
}
else if (button.value == "button1") {
alert("bla");
}
}
<input type="button" name="button1" value="button" onClick="check(document.test.button1);">
Айде със здраве.
Just a human.
Re: JavaScript и натиснат бутон
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[линк]">
<html xmlns="[линк]" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Page</title>
<script type="text/javascript">
//<![CDATA[
var lastSubmit = null;
//]]>
</script>
</head>
<body>
<form id="form" enctype="multipart/form-data" method="post" action="" onsubmit="alert('submited via ' + lastSubmit);">
<fieldset>
<legend>Buttons</legend>
<p>
<button id="btnSubmit1" type="submit" onfocus="lastSubmit = this.id;"><strong>Submit 1</strong></button>
<button id="btnSubmit2" type="submit" onfocus="lastSubmit = this.id;"><strong>Submit 2</strong></button>
<button id="btnReset" type="reset"><strong>Reset</strong></button>
</p>
</fieldset>
</form>
</body>
</html>
Нещо такова...
(не е лошо да използваш button вместо input, понеже текста на бутона може да го markup-ваш)
Попрочети за event обекта ...
Така ще ти е по-удобно мисля аз ...
function showWhat()
{
var allInputs=document.getElementsByTagName("INPUT");
for(j=0 ; j < allInputs.length ; j++)
{
if( allInputs[j].type=="submit")
{
allInputs[j].onclick=function(evnt)
{
var isIe = (typeof(evnt) == 'undefined');
if(isIe)evnt=event;
var el = (!isIe?evnt.target:evnt.srcElement);
/*
Eto tuka el ti e elementa
izvikal funkciyata
*/
evnt.cancelBubble = true;
}
}
}
}
Re: Попрочети за event обекта ...
Хубаво, ама направи го по-сложно че така простее малко...




забележка
Не забравяй да поставиш проверка за lastSubmit == null, (защото формата може да се изпраща и с Enter).
Re: забележка
Абе не успях да докарам случай в който да не се минава през onfocus.
Пробвах и с Tab + Enter и accesskey на IE, Firefox и Opera (последните версии де).
Пробвах и с Tab + Enter и accesskey на IE, Firefox и Opera (последните версии де).
Re: забележка
:) е IE се 'отчете' ако събмитваш през accesskey се показва 'submited via null'
Re: забележка
При мен (Opera, IE) не се минава през onfocus. Ако използваш onclick вместо onfocus, в Opera се минава през него и с Enter, но не и в IE. Аз говоря не да фокусираш бутона и да натиснеш Enter. Щракни в IE където и да е в този fieldset и натисни Enter, за Opera ще трябва един input text за да го тестваш.
Re: забележка
Мда, като съм във fieldset-а не минава през onfocus и директно изпраща с Enter. Забелязах, че първия (независимо от tabindex-а) от бутоните е с удебелен бордер, но не се фокусира. В случая бих подходил инженерно - в onsubmit на формата проверявам lastSubmit и ако е null връщам false, т.е. не събмитвам. Така и така има достатъчно културни варианти за юзъра - кеф му да клика, кеф му да се разхожда с Tab и тогава да натиска Enter.
Re: JavaScript и натиснат бутон
Има.
[линк]
Ей тук всичко са си написали хората. И не ти требе JS
И.Ш.
[линк]
Ей тук всичко са си написали хората. И не ти требе JS
И.Ш.
Re: JavaScript и натиснат бутон
Не знам защо му е на автора на темата, но съм правил нещо подобно - имам форма, която прави различни неща, когато се събмитне през различен бутон.
За server-side е ясно - name. Работата е там, че може да искам да направя нещо с client-side скрипт. Друго решение е да имам отделни форми, всяка с по един събмит, но не работи, когато има общи за двете форми контроли.
За server-side е ясно - name. Работата е там, че може да искам да направя нещо с client-side скрипт. Друго решение е да имам отделни форми, всяка с по един събмит, но не работи, когато има общи за двете форми контроли.
Re: JavaScript и натиснат бутон
С 2 думи, за server-side се ползва аТрибуТа name
А за clienT-side се ползва onclick
Що Трябва да е сложно, каТо може и да е просТо?
Fatal error: user in love
А за clienT-side се ползва onclick
Що Трябва да е сложно, каТо може и да е просТо?
Fatal error: user in love
Re: JavaScript и натиснат бутон
Хм, бе по принцип е точно така. Сега като пробвах с онклик винаги бачка както трябва. Не знам защо съм останал с погрешното впечатление, че не работи с таб и аксеский.
Ше си го запиша правилото :))
Ше си го запиша правилото :))
при Enter в input text в IE няма onclick
onclick вместо onfocus, но останалото си остава при Enter в input text в IE.

Re: при Enter в input text в IE няма onclick
Е т'ва ясно, за бутоните ставаше дума.
Re: при Enter в input text в IE няма onclick
Е нали целТа е да се разбере кой оТ дваТа буТона е наТиснаТ... при enTer в inpuT TexT не е наТиснаТ ниТо един, ама 'ич! :-P
А ако фокусираш буТона и наТиснеш enTer, си се задейсТва onclick...
Fatal error: user in love
А ако фокусираш буТона и наТиснеш enTer, си се задейсТва onclick...
Fatal error: user in love
Редактирано от Chernobyl® на