2009-08-05 3 views
0

У меня есть скрытое поле ввода со значением,как использовать пред получить значение поля ввода

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

Мне нужно получить значение поля ввода когда кнопка нажата, но я только получаю текстовый объект, почему это так?

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


}); 

благодаря

+0

Если вы копируете и вставляете, возможно, что() имеет пробел между ним и значением val –

ответ

0

Есть некоторые опечатки в вашем коде. Проверьте, поможет ли это. Исправлена ​​инициализация массива и вызов prev.

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

Почему каждый, когда может быть выбран только один параметр. Также prev в опции в select будет либо другой вариант, либо ничего (если в элементе first option) – redsquare

+2

Это неверно. Если у вас есть более одного окна выбора, это будет соответствовать всем выбранным параметрам из всех них. Также, если у вас есть multi-select, это вернет более одного элемента. – RaYell

+0

В примере показано 1 выбор, и это был не многомерный выбор. Превью все еще было неправильным. – redsquare

0

Если я понимаю правильно, вы просто нужно получить значение то, что было выбрано? Если это так, я не считаю, что каждая() функция необходима. Вы можете просто получить значение избранных таким образом:

$(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> 

Пример: http://jsbin.com/ipado

+0

Мне кажется, ему нужно значение скрытого 'input', которое находится перед элементом' select'. – RaYell

+0

А, ладно, я, должно быть, неправильно понял. – jyoseph

0

В вашем примере кода this не выберите-элемент, но вариант-элемент. Таким образом, скрытый ввод и this не являются братьями и сестрами, а prev не соответствует требуемому элементу.

$(this).parent().prev('input:hidden').val() 

Перейти на один уровень вверх в DOM, и вы найдете скрытый ввод.

Смежные вопросы