2012-09-15 11 views
5

Tenga un importe de factura generado por un complemento en la página. Quiero copiar su id en un campo de formulario para completarlo previamente.Prellene el formulario con jQuery

<div id="invoicediv">$123.00</div> 

<div id="price"></div> 
<br /> 
<form a`ction="https:/thecart.com" method="post" accept-charset="utf-8"> 

<label>Donation Amount:</label><br> 
$<input id="txtBox" size="3" type="text" name="dollaramount"> 
<input type="hidden" name="name" value="Donation"> 
<input type="submit" value="Donate"> 
</form> 

jQuery que funciona:

$('#price').html($('#invoicediv')); 

pero la forma no:

$('#txtBox').val($('#invoicediv'));​ 

también quiero quitar el signo del dólar ante sí se copia en el formulario.

Tengo el siguiente código hasta ahora en http://jsfiddle.net/yvTNc/24/ también.

Respuesta

1

Estás copiando un objeto jquery dentro del val(), necesitas $('#invoicediv').val() o .text() dependiendo del elemento. En este caso te gustaría $('#invoicediv').text()

gusta esta

$('#txtBox').val($('#invoicediv').text());​ 
+0

Si necesito obtener la primera instancia de #txtBox, ¿cuál sería la forma correcta de hacerlo? – user1673622

+0

Usted está agarrando 'txtBox' por Id, por lo que técnicamente se supone que no debe tener más de uno. Si terminas con más, debes cambiar tu selector a clase u otra cosa donde puedas tener múltiples. Luego, para obtener el primero, puede hacer esto '$ ('. TxtBox: first')' – hsalama

1

puedo actualizar su código y miren

http://jsfiddle.net/yvTNc/25/

he cambiado esta línea $('#txtBox').val($('#invoicediv'));​

a

$('#txtBox').val($('#invoicediv').text().replace('$',''));​

+0

Esto funciona perfecto, gracias por su ayuda – user1673622

Cuestiones relacionadas