2009-08-03 39 views
5

Tôi có một lĩnh vực đầu vào như dưới đây,làm thế nào để thêm vào giá trị của một trường nhập với Jquery

<input name="update_price" type="text" id="update_price" value="£" size="8" 
     maxlength="8" /> 

Tôi muốn để có được một số giá trị giá từ giá trị của một hộp chọn và thêm nó sau Ký hiệu £, điều này đạt được như thế nào trong jquery,

<form> 
       <select name="select" id="select"> 
        <option>Select your pizza</option> 
        <option value="6.65">NY, 10&quot;, £6.65</option> 
        <option value="8.95">NY, 12&quot;, £8.95</option> 
        <option value="11.95">NY, 16&quot;, £11.95</option> 
        <option value="3.45">Chicago, 7&quot;, £3.45</option> 
        <option value="6.65">Chicago, 10&quot;, £6.65</option> 
        <option value="8.95">Chicago, 12&quot;, £8.95</option> 
        <option value="11.95">Chicago, 16&quot;, £11.95</option> 
        <option value="19.95">Chicago, Beast 24&quot; x 18&quot;, £19.95</option> 
       </select> 
     </form> 



    $(function() 
    { 
    $('#select').change(function() { 

    $('input[name=update_price]').val($("#select :selected").val()); 
    }); 
    }); 

nó hoạt động với mã ở trên nhưng ký hiệu £ biến mất, mọi trợ giúp sẽ được đánh giá cao.

Trả lời

4

Trong tôi qua đã sử dụng hình nền trên hộp nhập cho ký hiệu tiền tệ. Bằng cách đó, biểu tượng có thể trông khá, được căn trái (trong khi giá trị được căn chỉnh đúng) và nó không cản trở tính toán.

Hy vọng rằng sẽ giúp

2

Một giải pháp là đặt ký hiệu Pound vào thẻ giá trị của các tùy chọn trong hộp chọn.

<option value="€ 6.65">NY, 10&quot;, £6.65</option> 

Nhưng điều đó có thể gây ra sự cố khi tính toán với giá trị này. đẹp hơn như sau:

$('input[name=update_price]').val("€"+$("#select :selected").val()); 

Tôi không có dấu hiệu pound trên bàn phím của tôi, vì thế mà :) €

// chỉnh sửa

<input type='hidden' name='shopping_cart_value' value='0'> 

$('input[name=update_price]').val("€"+$("#select :selected").val()); 
$('input[name=shopping_cart_value]').val($("#select :selected").val()); 
+0

Cảm ơn câu trả lời, tôi không thể đặt dấu thăng vào thẻ giá trị vì tôi đang sử dụng giỏ hàng và tôi đang sử dụng giá trị cho điều đó. Tôi đang sử dụng firefox và khi đặt dấu thăng trong "£", một số ký tự lạ xuất hiện? tại sao vậy? –

+0

Những ký tự lạ này ở đó vì mã hóa ký tự của dấu thăng. Thử cập nhật hai trường. Một để hiển thị đúng giá. Và một được sử dụng cho giỏ mua hàng. Giống như tôi đã làm ở trên. – blub

+0

Tôi đoán bạn là một nhà phát triển PHP '=)' Trong ví dụ mã cuối cùng của bạn, bạn có những điều sau đây: '" € ". $ (" # Select: selected ")' – Blixt

4

Are mã hóa tập tin và trang là giống nhau không? Nếu bạn muốn sử dụng các ký tự đặc biệt như ký hiệu bảng, bạn phải lưu tệp javascript UTF-8 (không có ký tự bom. Bạn có thể sử dụng notepad ++ hoặc trình soạn thảo tương tự cho điều đó)

Btw bạn đã chỉ định id cho đầu vào, vậy tại sao không sử dụng điều đó để gán giá trị của nó và cuối cùng, bạn có thể sử dụng này khi bạn đang ở trong phạm vi chức năng thay đổi. Xem bên dưới

$(function() { 
    $('#select').change(function() { 
    $('#update_price').val("£" + $(this).val()); 
    }); 
}); 
+0

Đối với ký hiệu bảng, hãy thử Alt-Gr + 2 –

+0

Cũng lưu ý rằng kara đang sử dụng id của đầu vào không nhập [name = update_price]. Tôi nghĩ rằng đây là sạch hơn và có lẽ nhanh hơn (ít selectors). – MrHus

Các vấn đề liên quan