Principales respuestas
Línea javascript no ejecuta

Pregunta
-
Hola a todos:
Tengo un html y javascript
<%@ Page CodeFile="ejemplo.aspx.vb" Inherits="codigo" %> <form ID="frm" runat="server"> <asp:FileUpload ID="fufichero" runat="server" /> <asp:button id="btnsubir" text="subir" runat="server" /> <table id="tblbarraprogreso" border='0' style="height:5px;border-spacing:0;display:none" runat="server"> <tr> <td id="tdbarra1" runat="server"> </td> <td id="tdbarra2" runat="server"> </td> <td id="tdbarra3" runat="server"> </td> <td id="tdbarra4" runat="server"> </td> <td id="tdbarra5" runat="server"> </td> <td id="tdbarra6" runat="server"> </td> <td id="tdbarra7" runat="server"> </td> <td id="tdbarra8" runat="server"> </td> <td id="tdbarra9" runat="server"> </td> <td id="tdbarra10" runat="server"> </td> <td id="tdbarra11" runat="server"> </td> <td id="tdbarra12" runat="server"> </td> <td id="tdbarra13" runat="server"> </td> <td id="tdbarra14" runat="server"> </td> <td id="tdbarra15" runat="server"> </td> <td id="tdbarra16" runat="server"> </td> <td id="tdbarra17" runat="server"> </td> <td id="tdbarra18" runat="server"> </td> <td id="tdbarra19" runat="server"> </td> <td id="tdbarra20" runat="server"> </td> <td id="thporcentaje" runat="server"> 0 % <asp:label id=lblfichero runat="server"></asp:label></td> </tr> </table> <div id="progressbar"> <p id="progressnum"></p> <div id="precargador"> <div id="indicador"></div> </div> <input type="button" name="Submit" value="Parar" onclick="clearInterval(itv)" /> </div> <script> var maxprogress = 20; var actualprogress = 0; var itv = 0; var inti=0; function prog() { if (actualprogress >= maxprogress) { clearInterval(itv); return; } actualprogress += 1; for (inti = 1 ; inti <= actualprogress; inti++) { document.getElementById('tdbarra' + inti).style.width = '3px'; document.getElementById('tdbarra' + inti).style.backgroundColor = '#0000FF'; } for (inti = actualprogress + 1 ; 20; inti++) { document.getElementById('tdbarra' + inti).style.width = '3px'; document.getElementById('tdbarra' + inti).style.backgroundColor = '#B5CCFF'; } document.getElementById('thporcentaje').innerHTML = ' ' + actualprogress * 5 + ' %'; var progressnum = document.getElementById("progressnum"); var indicador = document.getElementById("indicador"); indicador.style.width = actualprogress + "px"; progressnum.innerHTML = (maxprogress - actualprogress) + " MS Faltantes"; } </script> </form>
No ejecuta desde
document.getElementById('thporcentaje').innerHTML = ' ' + actualprogress * 5 + ' %';
¿Por qué?
Gracias anticipadas
Respuestas
-
hola
pero no entiendo porque te complicas resolviendo esto desde el cliente cuando los datoa deberias enviarlos parseados desde el servidor
porque ese substring no lo aplicas en el server para enviar solo el nombre al cliente y lo asignas de forma simple
no se porque tienes que codificar tan complicado
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Karen MalagónModerator miércoles, 28 de octubre de 2015 16:10
- Marcado como respuesta Karen MalagónModerator jueves, 29 de octubre de 2015 18:17
Todas las respuestas
-
hola
a que llamas que no ejecuta ? obtienes un error
usas el Developr Tools del browser (al cual accedes con F12) y con la solapa Console puedes ver si hay un error de javascript
lo que no logro entender es porque defines una <table> de esa forma, es una pesima idea, porque no usaste un gridview y asignas los datos a un datatable o a una lista que luego bindeas al grid
es mas porque no usas jquery ?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina
- Editado Leandro TuttiniMVP martes, 27 de octubre de 2015 17:21
-
Hola
Los controles que son definidos del lado servidor como en tu caso el td no se pueden acceder con el ID, debido a que ese id cambia cuando ya se esta ejecutando en el explorador.
<td id="thporcentaje" runat="server"> 0 % <asp:label id=lblfichero runat="server"></asp:label></td>
Hay dos opciones que le ingreses que el ClientIDMode es Static para que no cambie su ID.<td id="thporcentaje" ClientIDMode="Static" runat="server"> 0 % <asp:label id=lblfichero runat="server"></asp:label></td>
O tambien podrias hacerlo asi sin agregar el ClientIDMode
document.getElementById('<%= thporcentaje.ClientID %>').innerHTML = ' ' + actualprogress * 5 + ' %';
Saludos -
Hola de nuevo:
Ahora tengo esta cadena en javascript
document.getElementById('thporcentaje').innerHTML = ' ' + actualprogress * 5 + ' % ' + strfichero.value.substring(lastIndexOf(strfichero.value, '\\') + 1, strfichero.length)
strfichero=c: \ficheros\ejemplo.vbs
quiero que la substring dé ejemplo.vbs
¿Cómo hacer bien para que coja el \ en el substring?
Gracias
- Editado volar.2014 martes, 27 de octubre de 2015 17:53
-
Hola
Seria de esta manera.
<input type="text" id="texto" name="texto" value="c: \ficheros\ejemplo.vbs"/> <script language="Javascript"> var strfichero=document.getElementById('texto'); alert(strfichero.value.substring(strfichero.value.lastIndexOf("\\"), strfichero.length)); </script>
Saludos -
hola
pero no entiendo porque te complicas resolviendo esto desde el cliente cuando los datoa deberias enviarlos parseados desde el servidor
porque ese substring no lo aplicas en el server para enviar solo el nombre al cliente y lo asignas de forma simple
no se porque tienes que codificar tan complicado
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Karen MalagónModerator miércoles, 28 de octubre de 2015 16:10
- Marcado como respuesta Karen MalagónModerator jueves, 29 de octubre de 2015 18:17