Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cómo escribir una función para varios productos

Estas en el tema de Cómo escribir una función para varios productos en el foro de Javascript en Foros del Web. Estimad@s los saludo como nuevo usuario de foro, y comienzo con una duda: Quiero usar una función que me permita dar resultados diferentes dependiendo de ...
  #1 (permalink)  
Antiguo 07/04/2013, 20:39
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Pregunta Cómo escribir una función para varios productos

Estimad@s los saludo como nuevo usuario de foro, y comienzo con una duda:

Quiero usar una función que me permita dar resultados diferentes dependiendo de las variables que tengan mis campos de select. Y no se si la respuesta es un array, ya que no encuentro como incluirlo en mi función.
Estoy usando javascript y html.

El html es:

Incluye la cantidad producto 1:
<select id="cant1">
<option selected value="0" >/</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input name="CANTIDAD" type="hidden" value="98" id="prec1">
PRECIO $98</p>

Mi función que realiza la operación es la siguiente:

function result1(){
catt=$('#prec1').val()
catt2=$('#cant1').val()
miee=catt * catt2
$("#respuesta").html("$ " + miee)
}

Y lo que activa mi función es lo siguiente:

$('#cant1').change(function(){
result1();
totalizar();

});

Todo funciona bien, pero no se como escribirlo para otros 90 productos. Si usar arreglos o bucles, etc...

Gracias!!!
  #2 (permalink)  
Antiguo 07/04/2013, 21:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Cómo escribir una función para varios productos

Si lo entiendo correctamente, algo asi

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Bind jQuery</title>
  5.  
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. $(document).ready(function(){
  10.  
  11. $('.ln').bind('change', function() {
  12. var valor = $(this).val();
  13. valor = parseInt(valor);
  14. var laclase = $(this).attr('id');
  15. var coeficiente = $('.'+ laclase).val();
  16. coeficiente = parseInt(coeficiente);
  17. var resultado = valor*coeficiente;
  18. alert(resultado);
  19. });
  20.  
  21. });
  22. //]]>
  23.  
  24. </head>
  25. <select id="cant1" class="ln">
  26.  <option selected value="0" >0</option>
  27.  <option value="1">1</option>
  28.  <option value="2">2</option>
  29.  <option value="3">3</option>
  30.  <option value="4">4</option>
  31.  </select>
  32.  <input name="CANTIDAD" type="hidden" value="98" class="cant1">
  33.  PRECIO $98</p>
  34.  
  35.  <select id="cant2" class="ln">
  36.  <option selected value="0" >0</option>
  37.  <option value="1">1</option>
  38.  <option value="2">2</option>
  39.  <option value="3">3</option>
  40.  <option value="4">4</option>
  41.  </select>
  42.  <input name="CANTIDAD" type="hidden" value="45" class="cant2">
  43.  PRECIO $45</p>
  44. </body>
  45. </html>

Primero le dás a todos tus selects una misma clase, y a tus inputs hidden le das una clase con igual nombre al id del select al que pertenecen.
Luego usas bind para agregar el evento change a los selects con lo que vas a tener la cantidad y el precio unitario para sacar el producto
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 07/04/2013, 23:20
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
De acuerdo Respuesta: Cómo escribir una función para varios productos

Perfecto!!! es lo que buscaba!! No sabía del bind,pero voy a documentarme más.
Sólo agregué unas lineas a tu código para que escriba el resultado en diferentes divs, relacionados con los ids, agradezco!!!!

<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Bind jQuery</title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$('.ln').bind('change', function() {
var valor = $(this).val();
valor = parseInt(valor);
var laclase = $(this).attr('id');
var coeficiente = $('.'+ laclase).val();
coeficiente = parseInt(coeficiente);
var resultado = valor*coeficiente;
var respuesta="respuesta";
$('#' + respuesta + laclase).html("$ " + resultado);
});
});
//]]>
</script>

</head>
<body>
<p>
<select id="1" class="ln">
<option selected value="0" >0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input name="CANTIDAD" type="hidden" value="98" class="1">
PRECIO $98</p>

<p>
<select id="2" class="ln">
<option selected value="0" >0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input name="CANTIDAD" type="hidden" value="45" class="2">
PRECIO $45</p>

<p>SUBTOTAL 1<div id="respuesta1"></div></p>
<p>SUBTOTAL 2<div id="respuesta2"></div></p>

</body>
</html>

Etiquetas: bind, funciones, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.