Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Passare due variabili a funzione JS

    Buonasera

    Ho serie difficoltà nel risolvere il seguente problema: in una pagina ho diversi campi di input sui quali devo effettuare un controllo che ne verifichi il contenuto e, nel caso in cui questo sia nullo o pari a 0 lo porti ad 1.

    Questo avviene tramite la seguente funzione:


    function funzioneJS() {
    if(document.nomeForm.nomeInput.value == "" || document.nomeForm.nomeInput.value < 1) {
    document.nomeForm.nomeInput.value = "1";
    }
    return true;
    }


    Questo funziona perfettamente per un singolo campo di input, ma nel momento in cui sia i campi che i form diventano più di uno le cose divengono, almeno per il sottoscritto, ingestibili.

    Ho fatto una carrettata di prove cercando di passare le due variabili nomeForm e nomeInput al momento del richiamo della funzione (onblur="return funzioneJS('nomeForm',this);" oppure onblur="return funzioneJS('nomeForm','nomeInput');"), ma non riesco a fare in modo che vengano lette dalla funzione.

    Finora mi era capitato di dover passare una sola variabile ad una funzione JS, ma adesso non so proprio come fare.

    Mi si può aiutare?

    Grazie e buonanotte.
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  2. #2
    prova così:

    codice:
    function funzioneJS(f,e) {
    var els=f.elements;
    if(els[e].value == "" || els[e].value < 1) {
    els[e].value = "1";
    }
    return true;
    }
    chiamata:

    codice:
    funzioneJS(this.form,this);
    ciao

  3. #3
    Grazie per il velocissimo aiuto, ma c'è ancora qualcosa che non va.
    La funzione non "funziona" (è la stanchezza che mi fa scrivere queste castronerie) ed il browser mi dice "value" è nullo o non è un oggetto.

    Che vorrà dire?
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  4. #4
    Originariamente inviato da Eugene
    Grazie per il velocissimo aiuto, ma c'è ancora qualcosa che non va.
    La funzione non "funziona" (è la stanchezza che mi fa scrivere queste castronerie) ed il browser mi dice "value" è nullo o non è un oggetto.

    Che vorrà dire?
    allora prova così (passando un solo parametro):

    codice:
    function funzioneJS(e) {
    if(e.value == "" || e.value < 1) {
    e.value = "1";
    }
    return true;
    }
    chiamata:

    codice:
    funzioneJS(this);
    ciao

  5. #5
    Adesso si che funziona, grazie mille!

    Per quel che sapevo io, nelle funzioni di verifica dei campi presenti in un form era necessario indicare tutto il percorso dell'oggetto (es: document.nomeForm.nomeInput ).

    Non è sempre così?

    In ogni caso, ancora grazie e buonanotte.
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  6. #6
    no, almeno nel tuo caso basta indicare il campo sul quale agire.
    a ogni modo, le modalità standard per accedere a un elemento di un form, magari all'interno di una funzione, sono:

    1. var elemento=document.getElementById('iddelform').camp o1;
    2. var elemento=document.getElementById('iddelform').elem ents['campo1'];

    dunque, in una funzione potresti avere:

    codice:
    function funzione(riferimentoAlForm, nomecampo){
     var elemento=riferimentoAlForm.elements[nomecampo];
     ...
    ciao

  7. #7
    Un'ultima cosa dopodichè vado a dormire: che differenza c'è tra utilizzare il nome o l'id di un form (o di un elemento al suo interno)?

    Lo so che la domanda può risultare stupidae che probabilmente queste nozioni dovrebbero essere alla base della compilazione di script java, ma dal momento che non mi è ben chiara la faccenda preferisco chiedere piuttosto che vivere nell'gnoranza.

    Grazie e buonanotte.
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

  8. #8
    non c'è differenza, solo che:

    1. non possono esistere due elementi HTML con lo stesso id
    2. l'attributo name sta diventando sempre più deprecabile, per cui è sempre meglio utilizzare l'id al sui posto

    ciao

  9. #9
    Grazie per l'aiuto ed il chiarimento, alla prossima.
    <-- Fare. O non fare. Non c'è provare. -->

    www.yodastudio.com
    segui YODA Studio su facebook

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.