none
Línea javascript no ejecuta RRS feed

  • 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">&nbsp;</td>
    	<td id="tdbarra2" runat="server">&nbsp;</td>
    	<td id="tdbarra3" runat="server">&nbsp;</td>
    	<td id="tdbarra4" runat="server">&nbsp;</td>
    	<td id="tdbarra5" runat="server">&nbsp;</td>
    	<td id="tdbarra6" runat="server">&nbsp;</td>
    	<td id="tdbarra7" runat="server">&nbsp;</td>
    	<td id="tdbarra8" runat="server">&nbsp;</td>
    	<td id="tdbarra9" runat="server">&nbsp;</td>
    	<td id="tdbarra10" runat="server">&nbsp;</td>
    	<td id="tdbarra11" runat="server">&nbsp;</td>
    	<td id="tdbarra12" runat="server">&nbsp;</td>
    	<td id="tdbarra13" runat="server">&nbsp;</td>
    	<td id="tdbarra14" runat="server">&nbsp;</td>
    	<td id="tdbarra15" runat="server">&nbsp;</td>
    	<td id="tdbarra16" runat="server">&nbsp;</td>
    	<td id="tdbarra17" runat="server">&nbsp;</td>
    	<td id="tdbarra18" runat="server">&nbsp;</td>
    	<td id="tdbarra19" runat="server">&nbsp;</td>
    	<td id="tdbarra20" runat="server">&nbsp;</td>
        <td id="thporcentaje" runat="server">&nbsp;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 = '&nbsp;' + 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 = '&nbsp;' + actualprogress * 5 + ' %';

    ¿Por qué?

    Gracias anticipadas

    martes, 27 de octubre de 2015 15:00

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

    martes, 27 de octubre de 2015 19:11

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



    martes, 27 de octubre de 2015 15:09
  • 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">&nbsp;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">&nbsp;0 % <asp:label id=lblfichero runat="server"></asp:label></td>

    O tambien podrias hacerlo asi sin agregar el ClientIDMode

     document.getElementById('<%= thporcentaje.ClientID %>').innerHTML = '&nbsp;' + actualprogress * 5 + ' %';

    Saludos

    martes, 27 de octubre de 2015 17:08
  • Hola de nuevo:

    Ahora tengo esta cadena en javascript

            document.getElementById('thporcentaje').innerHTML = '&nbsp;' + 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
    martes, 27 de octubre de 2015 17:52
  • 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

    martes, 27 de octubre de 2015 18:06
  • 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

    martes, 27 de octubre de 2015 19:11