Visualizzazione dei risultati da 1 a 8 su 8

Discussione: numero errato

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    583

    numero errato

    premetto che nn so se sono nella sezione giusta.....


    salve

    ho questo script



    Sub ShowMq(ByVal sCtrlName,ByVal sValue)
    If sValue="" Or IsNull(sValue) Then sValue = 0

    %>
    <input type="text" name="<%=sCtrlName%>" value="<%=sValue%>" class="normales" style="width:40;" onchange="VerificaMq()">
    <%
    End Sub




    var nTotalMq = null;
    function VerificaMq()
    {
    var oDamq = document.all("damq");
    var oAmq = document.all("amq");
    var oTotalimq = document.all("mq");

    if (oDamq!=null && oAmq!=null && oTotalimq!=null) {

    var nDamq = getNumber(oDamq.value);
    var nAmq = getNumber(oAmq.value);
    var nTotalimq = getNumber(oTotalimq.value);

    if (isNaN(nDamq))
    nDamq = 0;

    if (isNaN(nAmq))
    nAmq = 0;

    if (isNaN(nTotalimq))
    nTotalimq = 0;

    if (nTotalMq==null)
    nTotalMq = nTotalimq;

    if ((nDamq + nAmq / 2 < nTotalMq)) {
    if (confirm("ATTENZIONE!!! Stai modificando il mq vuoi continuare?")) {
    oTotalimq.value = (nDamq + nAmq ) / 2;
    nTotalMq = (nDamq + nAmq ) / 2;
    }
    } else {
    oTotalimq.value = (nDamq + nAmq ) / 2;
    }

    }
    }






    <%ShowMq "damq", Request.Form("damq")%>
    <%ShowMq "amq", Request.Form("amq")%>


    <input type="text" name="mq" class="normales" readonly value="<%=Request.Form("mq")%>" style="text-align:right;width:40">


    vi faccio un esempio
    se si inserisce
    da mq = 50 a mq 60 il risultato sul campo mq è 55


    se pero

    da mq = 50 a mq 51 il risultato sul campo mq è 505 anzichè 50,5

    perchè????????????????????????????????????????????



    fatemi sapere.

  2. #2
    quello è asp con vbscript - o ci assomiglia tanto tanto :-)
    dopo c'è un javascript, mo' ci do un occhio, lo noto adesso - si immagina dunque il prob sia lì

  3. #3
    ci vuole anche il codice di
    getNumber

    e anche gli altri due campi di testo

  4. #4
    comunque di solito ste cose sono una questione di parseFloat

    if ((nDamq + nAmq / 2 < nTotalMq)) {

    prima di quello metti:

    nDamq=parseFloat(nDamq);
    nAmq=parseFloat(nAmq);
    nTotalMq=parseFloat(nTotalMq);

    e poi vai col solito:
    if ((nDamq + nAmq / 2 < nTotalMq)) {

    prova un po'. magari è quello.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    583
    var nTotalMq = null;
    function VerificaMq()
    {
    var oDamq = document.all("damq");
    var oAmq = document.all("amq");
    var oTotalimq = document.all("mq");

    if (oDamq!=null && oAmq!=null && oTotalimq!=null) {

    var nDamq = getNumber(oDamq.value);
    var nAmq = getNumber(oAmq.value);
    var nTotalimq = getNumber(oTotalimq.value);

    if (isNaN(nDamq))
    nDamq = 0;

    if (isNaN(nAmq))
    nAmq = 0;

    if (isNaN(nTotalimq))
    nTotalimq = 0;

    if (nTotalMq==null)
    nTotalMq = nTotalimq;
    nDamq=parseFloat(nDamq);
    nAmq=parseFloat(nAmq);
    nTotalMq=parseFloat(nTotalMq);




    if ((nDamq + nAmq / 2 < nTotalMq)) {
    if (confirm("ATTENZIONE!!! Stai modificando il mq vuoi continuare?")) {
    oTotalimq.value = (nDamq + nAmq ) / 2;
    nTotalMq = (nDamq + nAmq ) / 2;
    }
    } else {
    oTotalimq.value = (nDamq + nAmq ) / 2;
    }

    }
    }




    cosi true ?

    devo agg.re altro

    facendo cosi sempre solito inserisco da 50 a 51 risultato 505 incredibile !!!!! non va mai

  6. #6
    ma getNumber e gli altri due campi di testo me li dici?
    Il parseFloat è una soluzione tipica ai casi di concatenzaione fra stringhe al posto di somme. Ma può darsi che sia getNumber. Non lo so senza i codici. getNumber che fa?

  7. #7
    Comunque togliendo getNumber qui funziona:

    codice:
    <input type="text" name="damq" value="50" class="normales" style="width:40;" onchange="VerificaMq()">
    <input type="text" name="amq" value="50" class="normales" style="width:40;" onchange="VerificaMq()">
    <input type="text" name="mq" value="1" class="normales" style="width:40;" >
    
    <script>
    
    var nTotalMq = null;
    function VerificaMq()
    {
    var oDamq = document.all("damq");
    var oAmq = document.all("amq");
    var oTotalimq = document.all("mq");
    
    if (oDamq!=null && oAmq!=null && oTotalimq!=null) {
    
    var nDamq = (oDamq.value);
    var nAmq = (oAmq.value);
    var nTotalimq = (oTotalimq.value);
    
    if (isNaN(nDamq))
    nDamq = 0;
    
    if (isNaN(nAmq))
    nAmq = 0;
    
    if (isNaN(nTotalimq))
    nTotalimq = 0;
    
    if (nTotalMq==null)
    nTotalMq = 8000;
    nDamq=parseFloat(nDamq);
    nAmq=parseFloat(nAmq);
    nTotalMq=parseFloat(nTotalMq);
    
    
    
    
    	if ((nDamq + nAmq / 2 < nTotalMq)) {
    		if (confirm("ATTENZIONE!!! Stai modificando il mq vuoi continuare?")) {
    		oTotalimq.value = (nDamq + nAmq ) / 2;
    		nTotalMq = (nDamq + nAmq ) / 2;
    		}
    	} else {
    	oTotalimq.value = (nDamq + nAmq ) / 2;
    	}
    
    }
    }
    </script>
    certo l'html ho dovuto dedurlo.
    nTotalMq gli ho dato un valore arbitrario di 8000 non so cosa lo popola nell' html e con che valore iniziale.
    Ah document.all funge solo su explorer eh, lo sai sì?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    583
    ciao il problema è risolto era + che altro da cambiare le virgole quando si passavano i dati quindi discussione asp

    grazie della disponibilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.