2009-08-03 13 views
5

Tengo un campo de entrada como el de abajo,cómo agregar al valor de un campo de entrada con jQuery

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

Me gustaría obtener algún valor de precios del valor de un cuadro de selección y añadirlo después de la £ señal, cómo se consigue esto en 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()); 
    }); 
    }); 

funciona con el código anterior, pero el signo £ desaparece, cualquier ayuda se agradece.

Respuesta

4

En el pasado han utilizado una imagen de fondo en el cuadro de entrada para el símbolo de moneda. De esta forma, el símbolo puede verse bonito, quedar alineado (mientras que el valor está alineado a la derecha) y no obstaculiza los cálculos.

Espero que ayude

2

Una solución es colocar el signo de libra en la etiqueta de valor de las opciones en el cuadro de selección.

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

Pero eso puede generar problemas al calcular con este valor. Más agradable es la siguiente:

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

no tengo el signo de número en mi teclado, por lo tanto el € :)

// editar

<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

Gracias por la respuesta, no puedo poner el signo de número en la etiqueta de valor porque estoy usando un carrito de compras y estoy usando el valor de that.also estoy usando Firefox y cuando poniendo el signo de la libra en "£", aparecen algunos personajes extraños? ¿porqué es eso? –

+0

Esos caracteres extraños están allí debido a la codificación de caracteres del signo de la libra. Intente actualizar dos campos. Uno para mostrar el precio correcto. Y uno usado para el carrito de compras. Como lo hice arriba. – blub

+0

Supongo que eres un desarrollador PHP '=)' En tu último ejemplo de código, tienes lo siguiente: '" € ". $ (" # Select: selected ")' – Blixt

2

Para obtener la muestra de la libra tratar

& # 163; o & libra;

también, echa un vistazo a esto para más información sobre estos códigos: http://www.ascii.cl/htmlcodes.htm

4

son la codificación del archivo y la página es igual? Si desea utilizar caracteres especiales como signo de libra, debe guardar su archivo de JavaScript UTF-8 (sin carácter bom. Puede usar notepad ++ o un editor similar para eso)

Por qué ha especificado una ID para la entrada, entonces ¿por qué? no usar eso para asignar su valor y, por último, puede usar este cuando se encuentre en el alcance de la función de cambio. Véase más abajo

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

Para el signo de la libra, pruebe Alt-Gr + 2 –

+0

También tenga en cuenta que kara está utilizando la identificación de la entrada no ingresada [name = update_price]. Creo que esto es más limpio y probablemente más rápido (menos selectores). – MrHus

Cuestiones relacionadas