2009-08-05 12 views
0

ich mit einem Wert, der ein verstecktes Eingabefeld habe zu bekommen,wie i.Vj. verwenden, um den Wert eines Eingabefeldes

<form> 
     <input type="hidden" value="product"/> 
     <select class="select" name="select3" id="select3"> 
      <option>0</option> 
      <option>1</option> 
      <option>2</option> 
     </select> 
    </form> 

Ich brauche den Wert des Eingabefeldes zu erhalten, sobald eine Schaltfläche geklickt wird, aber ich nur bekommen das Textobjekt warum ist das?

 var items[]; 
     $('#my-add-button-sides').click(function() { 
    $('.select option:selected').each(function() { 
     var $this = $(this); 
     items.push($this.prev($('input[type=hidden]').val()   
      )); 


}); 

dank

+0

Wenn Sie kopieren und einfügen, könnte es sein, dass die() hat ein Leerzeichen zwischen ihm und val –

Antwort

0

Es gibt einige Fehler in Ihrem Code. Überprüfen Sie, ob dies hilft. Ich habe Array Initialisierung und prev Aufruf festgelegt.

var items = []; 
$('#my-add-button-sides').click(function() { 
    $('.select option:selected').each(function() { 
     items.push($(this).parent().prev('input:hidden').val()) 
    )); 
}); 
+0

Warum die jeweils wenn nur eine Option ausgewählt werden kann. Auch prev einer Option in einer Auswahl ist entweder eine andere Option oder nichts (wenn am ersten Optionselement) – redsquare

+2

Das ist nicht wahr. Wenn Sie mehr als eine Auswahlbox haben, werden alle ausgewählten Optionen von allen ausgewählt. Auch wenn Sie eine Mehrfachauswahl haben, gibt dies mehr als ein Element zurück. – RaYell

+0

Das Beispiel zeigte 1 Auswahl, und es war keine Auswahl. Das Prev war immer noch falsch. – redsquare

0

Wenn ich richtig verstehe müssen Sie nur den Wert, was auch immer ausgewählt wurde zu bekommen? Wenn dem so ist, glaube ich nicht, dass die einzelnen() Funktionen notwendig sind. Sie können einfach den Wert der Auswahl erhalten wie folgt:

$(document).ready(function(){ 

    $('#select3').change(function() { 
     var selValue = $(this).val(); 
     alert(selValue); 
    }); 


}); 


<form name="someForm"> 

    <input type="hidden" value="product"/> 

    <select class="select" name="select3" id="select3"> 

     <option value="0">0</option> 

     <option value="1">1</option> 

     <option value="2">2</option> 

    </select> 

</form> 

Beispiel: http://jsbin.com/ipado

+0

Ich denke, er braucht einen Wert von einer versteckten 'input', die vor' select' Element ist. – RaYell

+0

Ah, Gotcha, ich muss falsch verstanden haben. – jyoseph

0

In Ihrem Beispiel-Code, this ist nicht das select-Element, sondern ein Option-Element. Also die versteckte Eingabe und this sind keine Geschwister, und prev stimmt nicht mit dem gewünschten Element überein.

Springen Sie eine Ebene höher im DOM, und Sie werden den versteckten Eingang finden.

Verwandte Themen