Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Aumentare e diminuire valore ma fermare allo zero

    Salve
    utilizzo questo script:
    codice:
    <input type=text name=pezzi value=1.530>
    <input type=button value="+" onClick="javascript:this.form.pezzi.value++;">
    <input type=button value="-" onClick="javascript:this.form.pezzi.value--;">
    Innanzitutto se premo meno non si ferma a zero (es: 0.530) deve azzerare proprio anche eventuali cent (es: 0.000), mentre continua con il meno.
    Altro problema: alcune volte essendo che la value del campo potrebbe essere dispari come indicato su mi fa vedere alcune se aumento o diminuisco anche 999999999 oppure 0000000
    potete aiutarmi?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, al posto di settare direttamente il valore nell'onClick puoi creare una funzione da associare. Avrai il valore e prima di settarlo potrai eseguire controlli e nel caso sovrascrivere il valore se inferiore a zero(o qualunque validazione vorrai applicare).
    In alternativa puoi usare un input di type="number" che per default ti renderizza su browser i pulsanti + e - direttamente nell'input e impedisce di inserire caratteri testuali.
    https://www.w3schools.com/tags/att_i...ype_number.asp ci sono diversi attributi utili

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie m4rko, la soluzione con il campo type number è ottima, ma per questa lavorazione mi serve che ci siano i tasti + e meno al di fuori dal campo ho modificato così:
    codice:
    <script>
    function aumenta() {
    numero = document.getElementById("add_qta").value;
    numero++;
    }
    function diminuisci>() {
    numero = document.getElementById("add_qta").value;
    if(numero>0.000)numero--;
    document.getElementById("add_qta").value = numero;
    }
    </script>
    <input type=button value="+" onclick="aumenta()"> -
    <input type=button value="-" onclick="diminuisci()">
    Però purtroppo se il campo è dispari tipo 1.530 quando arrivo a 0 mi scrive -0.47, innanzitutto vorrei ovviare a questo puoi aiutarmi?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Se vuoi poter utilizzare qualsiasi numero ma allo zero dovrà essere per forza zero basta aggiungere un controllo per arrotondare

    Math.floor() per difetto o Match.ceil() per eccesso e quindi se minore di 1 applicare Math.floor().
    Se il dato in originale arriva già inferiore a zero puoi impostarlo subito a zero con Math.ceil()

    https://www.w3schools.com/jsref/jsref_floor.asp

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Con il Math.ceil il dato 1.530 quando diminuisco , prima va ad 1 poi zero e se aumento parte sempre da 1 e no 1.000 dovrebbe darmi 0.530 e poi 0.000 come posso fare?

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Mi pare di aver capito che il problema fosse solo per valori negativi sotto allo zero.
    Quindi solo se il valore è minore di zero arrotondi a zero. Se superiore a zero non fare nulla.
    Se ho capito male scrivimi le regole corrette da rispettare

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    valore esempio: 1.530
    se aumenta di un passo: 2.530 --> 3.530 e così via
    se dimunuisce di un passo: 0.530 e poi 0.000 e fermarsi

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ok, quindi arrotonda per eccesso a zero solo se il valore è inferiore a 0 (quindi zero sarà il valore minimo utilizzabile).

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    È quelli che non riesco ad implementare al mio codice. Grazie

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Banalmente potresti fare cos':
    codice:
    <script>
    function diminuisci>() {
    var el = document.getElementById("add_qta");
    if(el<0){
     el.value = 0;
    }else{
     el.value--
    }
    }
    </script>

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.