Título: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 21 Mayo 2014, 16:38 pm
Buen día para todos
Tengo un inconveniente con esta sentencia if(document.getElementById("ctl00$ContPlace$hddVerObservaciones").value=="1")
en Internet explore me funciona correctamente pero en CHROME MOZILLA y otros navegadores tengo problemas Adjunto imagen
(http://imageshack.com/a/img836/6925/uqcg.jpg)
Ayedenem con este error.
Muchas gracias
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: engel lex en 22 Mayo 2014, 01:37 am
da más información... muestra el segmento del código... algo por donde empezar a ayudarte... lo primero que parece es que no está capturando el id, pero con tan poca información no se puede saber que pasa
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 22 Mayo 2014, 02:09 am
Buena tarde Adjunto codigos lo primero que hago es declarar en el archivo aspx <asp:Content ID="Content1" ContentPlaceHolderID="ContPlace" Runat="Server"> <input id="hddCiudadLocal" type="hidden" runat="server" /> <input id="hddValorMinimoPedido" type="hidden" runat="server" /> <input id="hddVerObservaciones" type="hidden" runat="server" /> <input id="hddOperacion" type="hidden" runat="server" /> <input id="hddPeriodo" type="hidden" runat="server" /> <input id="hddDetallePer" type="hidden" runat="server" /> <input id="hddCcGravadoIVA" type="hidden" runat="server" /> <input id="hddFechaPedido" type="hidden" runat="server" /> <input id="hddClicGuardar" type="hidden" runat="server" /> <input id="hddSubtotal" type="hidden" runat="server" /> <input id="hddTotal" type="hidden" runat="server" /> <input id="hddTotalIVA" type="hidden" runat="server" /> <input id="hddPedido" type="hidden" runat="server" /> <input id="hddCcostos" type="hidden" runat="server" /> <input id="hddDivision" type="hidden" runat="server" /> <input id="hddRegional" type="hidden" runat="server" /> <input type="hidden" id ="hddProductosSelec" runat="server" />
Luego llamo el javascript que lo tengo en un archivo pedidos.js desde la pagina master <script language="javascript" src="../script/pedidos/pedidos.js"></script>
function check(txtCantidad,idProducto,Indice, bolPptoCantidad,cantidad,valor,iva, campoResultado){ var txtCantidadtemp; if(bolPptoCantidad=="1"){ if(txtCantidad.value>cantidad){ txtCantidad.focus(); txtCantidad.select(); txtCantidad.value = " "; alert("Esta sobrepasando el presupuesto asignado"); return false; } } if(document.getElementById("ctl00$ContPlace$hddVerObservaciones").value=="1"){ //elimina los puntos y las comas Subtotal = document.getElementById("ctl00$ContPlace$txtSubtotal").value; while(Subtotal.indexOf(",") > 0){ Subtotal = Subtotal.replace(",",""); } while(Subtotal.indexOf(".") > 0){ Subtotal = Subtotal.replace(".",""); } totalIVA = document.getElementById("ctl00$ContPlace$txtIVA").value; while(totalIVA.indexOf(",") > 0){ totalIVA = totalIVA.replace(",",""); } while(totalIVA.indexOf(".") > 0){ totalIVA = totalIVA.replace(".",""); } //fin eliminar puntos y comas } if(productos[Indice]!=null){ //alert(productos[Indice].toString()); var cantidadAnterior = productos[Indice].toString().split("|") if(cantidadAnterior.length>0){ if(isNaN(parseInt(txtCantidad.value))) txtCantidadtemp = 0; else txtCantidadtemp = parseInt(txtCantidad.value); //txtCantidad.value = "0"; Subtotal =parseFloat(Subtotal) - (cantidadAnterior[1] * valor - txtCantidadtemp * valor); totalIVA= parseFloat(totalIVA) - ((cantidadAnterior[1] * valor * (iva/100)) - (txtCantidadtemp * valor *(iva/100))); totalPedido=parseFloat(Subtotal) + parseFloat(totalIVA) ; if(document.getElementById("ctl00$ContPlace$hddVerObservaciones").value=="1"){ document.getElementById("ctl00$ContPlace$txtSubtotal").value= formatNmb(Subtotal.toString()); document.getElementById("ctl00$ContPlace$txtIVA").value= formatNmb(totalIVA.toString()); document.getElementById("ctl00$ContPlace$txtTotal").value=formatNmb(totalPedido.toString()); document.getElementById("ctl00$ContPlace$txtSubtotal").acceptchanges } }else{ /* Subtotal = parseFloat(document.getElementById("ctl00$ContPlace$txtSubtotal").value) + txtCantidad.value * valor; totalIVA= parseFloat(document.getElementById("ctl00$ContPlace$txtIVA").value) + txtCantidad.value * valor*(iva/100); totalPedido=parseFloat(document.getElementById("ctl00$ContPlace$txtSubtotal").value) + parseFloat(document.getElementById("ctl00$ContPlace$txtIVA").value) ; document.getElementById("ctl00$ContPlace$txtSubtotal").value= formatNmb(Subtotal.toString()); document.getElementById("ctl00$ContPlace$txtIVA").value= formatNmb(totalIVA.toString()); document.getElementById("ctl00$ContPlace$txtTotal").value=formatNmb(totalPedido.toString()); */ } }else{ /* Subtotal =parseFloat(document.getElementById("ctl00$ContPlace$txtSubtotal").value) + txtCantidad.value * valor; totalIVA= parseFloat(document.getElementById("ctl00$ContPlace$txtIVA").value) + txtCantidad.value * valor*(iva/100); totalPedido=parseFloat(document.getElementById("ctl00$ContPlace$txtSubtotal").value) + parseFloat(document.getElementById("ctl00$ContPlace$txtIVA").value) ; document.getElementById("ctl00$ContPlace$txtSubtotal").value= formatNmb(Subtotal.toString()); document.getElementById("ctl00$ContPlace$txtIVA").value= formatNmb(totalIVA.toString()); document.getElementById("ctl00$ContPlace$txtTotal").value=formatNmb(totalPedido.toString()); */ } productos[Indice]=idProducto + "|" + txtCantidad.value; totalItem = txtCantidadtemp * valor //campoResultado.value =totalItem; campoResultado.value = formatNmb(totalItem.toString()); //CalcularValores(Indice); }
los parametros de input se los envio desde programacion asi case "buscarProductos": hddVerObservaciones.Value = "0"; break; case "Adicionar": hddVerObservaciones.Value = "1"; break;
el problema esta en que cuando ingreso con mozilla o chrome en este codigo me genera error if(document.getElementById("ctl00$ContPlace$hddVerObservaciones").value=="1")
me genera el error que ya mostré en la pregunta pero en explorer no hay ningun problema. Muchas gracias
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: engel lex en 22 Mayo 2014, 02:35 am
el asunto es que el id "ctl00$ContPlace$hddVerObservaciones" no existe realmente, debe ser algo puntual de microsoft que tiende a violar mucho los standards, la forma correcta sería tal cual el id contenido en el input es decir, solo "hddVerObservaciones"
con eso debería bastar, si tienes múltiples "hddVerObservaciones" se comportarán como array aunque no es apropiado usar múltiples elementos con el mismo id
así está establecido en el standard http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html (http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html)
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 22 Mayo 2014, 02:47 am
seria así if(document.getElementById("hddVerObservaciones").value=="1")
Mañana lo probare en el código a ver si funciona y te cuento aunque no recuerdo si lo había puesto así antes y me salia lo mismo.
Muchas Gracias
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 22 Mayo 2014, 14:35 pm
Hola Probé el código así if(document.getElementById("hddVerObservaciones").value=="1")
y asi if(document.getElementById("hddVerObservaciones")=="1")
Y tampoco me funciono si gue saliendo lo mismo Uncaught Typerror: Cannot read property'value' of null. No se que ponerle ya.
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: engel lex en 22 Mayo 2014, 15:12 pm
estas seguro que el elemento esta apareciendo en el navegador? (presiona ctrl +u para ver el código fuente y usa ctrl+f para buscar "hddVerObservaciones" y confirmar que existe exactamente con ese nombre)
porque el getElementById esta bien y me corre bien creando un elemento de ese nombre
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 22 Mayo 2014, 16:06 pm
Claro amigo eso era mire como aparecia el codigo <input name="ctl00$ContPlace$hddVerObservaciones" type="hidden" id="ctl00_ContPlace_hddVerObservaciones" />
Mil gracias ya lo corregi.
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: engel lex en 22 Mayo 2014, 23:50 pm
el id aparece con underscores y no con $ como lo estabas intentando, usa los uderscores, si no usas jquery y selectores tipo css
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 23 Mayo 2014, 05:16 am
Ya lo logre gracias a tu ayuda.
Muchas gracias
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: engel lex en 23 Mayo 2014, 05:24 am
realmente no conozco de asp y porque rayos le puso ese id al input, pero puedes usar JQuery para facilitarte el trabajo... haciendo uso de los selectores css (que son super flexibles) podrías hacer algo como var input = $("[id*=hddVerObservaciones]")
y esto te seleccionaría todos los elementos en los cuales el id contenga la cadena "hddVerObservaciones"
Título: Re: Problemas con if(document.getElementById("").value=="1") en javascript
Publicado por: jabedoya en 23 Mayo 2014, 05:38 am
A mi tambien me parecio extraño que ese id lo asignara de esa forma y solo me di cuenta cuando entre al codigo con ctrl+ u
|