2013-03-19 17 views
5

Mam sytuację, w której muszę śledzić, który przycisk przesyłania jest kliknięty, aby ustawić zmienne zgodnie z tym. Poniżej znajduje się kod testowy,Określ wartość klikniętego przycisku przesyłania z wieloma przyciskami przesyłania

<script> 
function submitForm(form) { 
    alert(document.getElementById('sb').value); 
    if (document.getElementById('sb').value=="One") { 
     //Do something 
    } 
    return true; 
} 
</script> 


<form action="" method="get" onsubmit="return submitForm(this);"> 
    <input type="submit" name="sb" value="One"> 
    <input type="submit" name="sb" value="Two"> 
    <input type="submit" name="sb" value="Three"> 
</form> 

Alert zawsze pokazuje Jeden, nawet jeśli kliknę przycisk Dwa lub Trzy. Ale zmiana adresu URL z klikalnym parametrem. Jak ostrzec wartość, która znajduje się w klikalnym przycisku przesyłania?

Uwaga: Chcę rozwiązanie z JQuery

EDIT: I zmienić bitowy kod której onsubmit nazywamy submitForm (this); Problemem jest nawet użycie document.forms [0] .sb.value jest niezdefiniowane, ponieważ document.forms [0] .sb zwraca listę węzłów wszystkich przycisków przesyłania tak jak w dokumencie.getElementById ('sb')

Odpowiedz

0

Kontynuując odpowiedź powyżej:

<script> 
function m(value) { 
alert(value); 
} 
</script> 

<input type="button" value="One" onClick="m(this.value)"> 
<input type="button" value="Two" onClick="m(this.value)"> 
<input type="button" value="Three" onClick="m(this.value)"> 

Można oczywiście zobaczyć, co jest id:

<input type="button" id='myId' value="Three" onClick="m(this.id)"> 
1

Proponuję użyć przycisków zamiast wielu przycisków przesyłania. W atrybucie onclick przycisków, prześlij formularz za pomocą javascript.

0

można spróbować z jQuery coś takiego:

$(":submit").live('click', function() { 
    alert($(this).val()); 
}) 
+0

rozwiązanie No-jQuery był oczekiwany ... –

1

Można spróbować w ten sposób,

<form> 
     <input class="myButton" type="submit" name="sb" value="One"> 
     <input class="myButton" type="submit" name="sb" value="Two"> 
     <input class="myButton" type="submit" name="sb" value="Three"> 
    </form> 

    <script type="text/javascript"> 
     $(".myButton").on('click', function() { 
     alert($(this).val()); 
     }); 
    </script> 
1

Jestem trochę nowy w javascript; proszę wybacz mi, jeśli się mylę. Czy nie miałoby to znaczenia, gdyby twoje stwierdzenie miało trzeci znak =?

powinno być:

if (document.getElementById('sb').value === "One") { 
    //Do something 
} 
return true; 
Powiązane problemy