2012-12-18 17 views
5

Ciao Sto provando a passare le variabili sull'evento onclick a una funzione javascript. Sto cercando il seguente modo, non riesco a ottenere il valore di input nella funzione javascript. (Mi aspetto un avviso di 1.) È il modo giusto di farlo? Per favore aiuto.passando il modulo principale dell'evento onclick alla funzione javascript

<head> 
    <script> 
     function submit_value(form) { 
      alert(form.ip.value); 
     } 
    </script> 
</head> 
<table> 
    <tr> 
     <form> 
      <td> 
       <input id="ip" type="text" value="1"> 
      </td> 
      <td> 
       <a href="javascript:;" onClick="submit_value(this)">Button</a> 
      </td> 
     </form> 
    </tr> 
</table> 

risposta

3

Lo script non sa cosa form è. Devi invece specificare document.forms[0].ip.value.

Se nel documento sono presenti più moduli, sarà preferibile memorizzare prima l'elemento del modulo in variabile. Si può avere un id sulla forma per quella ...

<form id="formID">

e nella funzione submit_value si può avere

var myForm = document.getElementById('formID'); alert(myForm.ip.value);

Edit:

È possibile utilizzare this.form per onClick del tag di ancoraggio.

+1

meglio è quello di dare la vostra forma un nome e poi usa document.formName.ip.value – Ankit

+0

Punto ci potrebbe essere n numero di forme dinamiche come questa document.forms [0] .ip.value sarebbe come sapere quale forma voglio inviare. Voglio passare il form parent al tag anchor. Come lo faccio? – user1051505

0

modificare la funzione a questo:

function submit_value(form) { 
     alert(document.getElementById('ip').value); 
    } 

Quando si scrive submit_value(this), il valore di this è in realtà l'elemento <a> in sé, non la forma.

+0

Il punto potrebbe essere n numero di forme dinamiche come questo. Voglio passare il form parent al tag anchor. Come lo faccio? – user1051505

+1

Se ci sono molte forme dinamiche, allora non dovresti usare 'id =" ip "' dato che l'id deve essere univoco –

+0

ok, la classe dovrebbe fare lì – user1051505

0

Suppongo che tu possa usare jquery. I selettori sono molto semplici con quello.

Cambiare il modulo qui sotto html da

<form> 
     <td> 
      <input id="ip" type="text" value="1"> 
     </td> 
     <td> 
      <a href="javascript:;" onClick="submit_value(this)">Button</a> 
     </td> 
</form> 

a

<form> 
     <td> 
      <input id="ip" type="text" value="1"> 
     </td> 
     <td> 
      <a href="" class="mySubmitButton">Button</a> 
     </td> 
</form> 

E poi i tuoi JS sarà simile

$('.mySubmitButton').click(function() { 

    var inputBox = $(this).prev(); 
    alert(inputBox.val()); 
    return false; //This prevents the default function submit . Similar to event.preventDefault 
}); 
0

JQuery è ovunque. Non hai bisogno di JQuery. Perché le persone dimenticano il modello di oggetti DOM? Fece tutto quasi in modo giusto:

<head> 
 
     <script> 
 
      function submit_value() { 
 
       alert(document.forms[0].ip.value); 
 
      } 
 
     </script> 
 
    </head> 
 
    <table> 
 
     <tr> 
 
      <form> 
 
       <td> 
 
        <input name="ip" type="text" value="1"> 
 
       </td> 
 
       <td> 
 
        <a href="javascript:;" onClick="submit_value()">Button</a> 
 
       </td> 
 
      </form> 
 
     </tr> 
 
    </table>

Oppure è possibile aggiungere ID Modulo

<head> 
 
     <script> 
 
      function submit_value() { 
 
       alert(document.forms.formid.ip.value); 
 
      } 
 
     </script> 
 
    </head> 
 
    <table> 
 
     <tr> 
 
      <form id='formid'> 
 
       <td> 
 
        <input name="ip" type="text" value="1"> 
 
       </td> 
 
       <td> 
 
        <a href="javascript:;" onClick="submit_value()">Button</a> 
 
       </td> 
 
      </form> 
 
     </tr> 
 
    </table>

Problemi correlati