2010-04-19 2 views
1

У меня есть поле выбора, которое дает описание продукта вместе с ценой. В зависимости от того, какой пользователь выбирает, я хотел бы автоматически захватить эту сумму в долларах из выбранной опции и назначить ее в поле ввода цены. Мой HTML:jquery parseFloat присвоение значения val

<tr> 
    <td> 
     <select class="selector"> 
      <option value="Item One $500">Item One $500</option> 
      <option value="Item Two $400">Item Two $400</option> 
     </select> 
    </td> 
    <td> 
     <input type="text" class="price"></input> 
    </td> 
</tr> 

Так на основе того, что выбрано, я хочу, либо 500 или 400, назначенный .class вход. Я попробовал это, но я не совсем уверен, где я буду неправильно:

$('.selector').blur(function(){ 
    var selectVal = ('.selector > option.val()'); 
    var parsedPrice = parseFloat(selectVal.val()); 
    $('.price').val(parsedPrice); 
}); 

ответ

4

Сначала удалите все из атрибута value, который не является частью значения.

<tr> 
    <td> 
     <select class="selector"> 
      <option value="500">Item One $500</option> 
      <option value="400">Item Two $400</option> 
     </select> 
    </td> 
    <td> 
     <input type="text" class="price"></input> 
    </td> 
</tr> 

Второе изменение вашего jQuery на это.

$('.selector').blur(function(){ 
    var parsedPrice = parseFloat($(this).val()); 
    $('.price').val(parsedPrice); 
}); 
+0

По какой-то причине функциональность размытия работает не так, как ожидалось. Я ожидал бы, что значение будет отображаться автоматически в поле цены после выбора, но вместо этого мне нужно на самом деле щелкнуть в поле цены, а затем вернуться к выбору, а затем снова вернуться в поле цены и только то появляется ли значение. – user306472

+1

@ user306472 - Это на самом деле способ, которым он должен работать. Вместо этого используйте событие «change». – ChaosPandion

+0

user306472 вы должны принять хорошие ответы –

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