Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Impossibile prelevare i valori dei campi di un form, con javascript!

    Salve a tutti di nuovo...
    Uso il costrutto javascript:
    document.forms['form_art'].elements[id_art].value;
    che fà parte di una funzione che riceve come parametro la varibile id_art che in lcuo in elements.....
    per prelevare i campi di un form di tipo dinamico,in pratica crea tanti campi di tipo input type="text" quanti sono gli articoli presenti,come name al campo dò l'id dell'articolo,e lo passo alla funzione sopra...
    Vi posto il codice html che mi arriva nella pagina:

    codice HTML:
    <form action="#" method="POST" id="form_art">
    <div id="separatore">[img]My_image/separatore.png[/img]</div>
     <div class="slide">
      <div id="nome_art">
         Brigante 160
         <div id="prezzo_art" style="margin-left: 260px; margin-top: -15px;">21.90</div>
       </div>
     <div id="marca_art">Marca: MOLIX</div>
     <div id="img_link_action_container"> <span id="link_img"><font color="red"> 0 </font>  </span>
    <a href="#" onclick="elimina_dal_carrello('8','2')" title="Elimina Articolo dal Carrello">
    [img]My_image/delete.png[/img]</a>
    <span style="margin-left: -5px;">[url="#"][img]My_image/dettagli_art.png[/img][/url]</span>
      </div>
      <div id="intest_cont_n">Quantità</div>
       <div>
         <span id="less_img">[img]My_image/arrow_down[/img]</span>
           <input id="8" value="1" size="3" readonly="readonly" type="text">
             <span id="more_img">[img]My_image/arrow_up[/img]</span>
         </div>
        </div>
       <div id="separatore">[img]My_image/separatore.png[/img]</div>
      <div class="slide">
     <div id="nome_art">
    articolo di prova  <div id="prezzo_art" style="margin-left: 260px;">11.00</div>
      </div>
      <div id="marca_art">Marca: 111</div>
      <div id="img_link_action_container">
      <span id="link_img"><font color="red">  0 </font>  </span>
    [url="#"][img]My_image/delete.png[/img][/url]
    <span style="margin-left: -5px;">[url="#"][img]My_image/dettagli_art.png[/img][/url]</span>
     </div>
     <div id="intest_cont_n">Quantità</div>
     <div>
             <span id="less_img">[img]My_image/arrow_down[/img]</span>
      <input id="47" value="1" size="3" readonly="readonly" type="text">
      <span id="more_img">[img]My_image/arrow_up[/img]</span>
     </div>
     </div>
     <div id="separatore">[img]My_image/separatore.png[/img]</div>
     <div class="slide">
       <div id="nome_art">
           Finder Jerk    
       <div id="prezzo_art" style="margin-left: 260px; margin-top: -15px;">0.00</div>
    </div>
    <div id="marca_art">Marca: molix</div>
    <div id="img_link_action_container">
      <span id="link_img">
      fontcolor="red">                                                                                                      0   </font> </span>
     [url="#"][img]My_image/delete.png[/img][/url]
     <span style="margin-left: -5px;">[url="#"][img]My_image/dettagli_art.png[/img][/url]</span>
      </div>
        <div id="intest_cont_n">Quantità</div>
      <div>
      <span id="less_img">[img]My_image/arrow_down[/img]</span>
      <input id="14" value="1" size="3" readonly="readonly" type="text">
     <span id="more_img">[img]My_image/arrow_up[/img]</span>
      </div>
     </div>
    </form>
    ragazzi ho cercato di indentare al meglio,ma purtroppo la larghezza della textarea è quello che è,cmq in linee generali il problema è che il campo input risulta "undefined" secondo javascript,ho provato anche lo stesso codice messo in un ciclo for in alto prima di tutto questo e funziona bene,avevo provato a dare come nome al campo input (come nel codice sopra), la varbile $cont che sarebbe poi il contatore del ciclo for degli articoli,e funziona ma in modo strano,praticamente mi faceva incrementare il campo quantità,solo il primo però fino a 3,quindi il numero massimo dei campi,il secondo poi fino a 2 l'ultimo fino a uno......
    La funzione che intercetta il click sull'immagine di decremento o incremento è ctrl_quant_art('1','1')
    dove il primo valore è id_art,che uso come nome del campo,e il secondo è l'azione per capire se incremento o dcremento,nella funzione i valori con l'alert arrivano,tutt'ok,ma è il codice:
    document.forms['form_art'].elements[id_art].value;
    come quello:
    document.all.item(id_art)
    oppure:
    document.form_art.id_art.value (anche se penso che questo sia sbaglaito)
    non vanno,nel secondo mi dà "undefined"...

    Non lo sò proprio da cosa dipenda,spero che qualcuno intercetti l'errore...grazie e saluti a tutti

  2. #2
    Ciao,
    ho paura che il problema sia nel nome degli input, per la precisione il fatto che sono numerici, in questo modo elements[id_art] diventa mettiamo caso elements[47] e javascript va a cercare il 48esimo elemento di quella form, che ovviamente non c'è
    prova a dare i nomi non numerici, per esempio <input id="product_47"...

  3. #3
    Grazie mille è andata,ho aggiunto uno '_n'ad ogni id che mando alla funzione e al name, ieri avevo pensato la stessa cosa,però aggiungevo '_n' al name dell'input,e poi l'altro '_n' lo aggiunevo nella funzione javascript così praticamente:
    document.forms['form_art'].elements[id_art+'_n'].value
    praticamente non l oaggiungevo nei parametri di chiamata della funzione,e non anadava,vabbè che ero pure esausto,e soprattutto è il mio primo sito completo,e molto approfondito con javascript.... Cmq grazie mille per la dritta, sei fortissimo....
    un saluto a tutti

    Aggiunto:
    E giacchè ci sono chiedo scusa al moderatore Xinod per aver postato male titolo i codice :master:

  4. #4
    Scusate eccomi di nuovo,posto quì perchè credo che sia molto collegato a chi cerca la stessa cosa del post,cmq ho riscontrato dei problemi con explorer,il funzionamento è sbalalto, ci sono delle restrizioni con l'uso degl oggetti usati da me in javascript verso explorer ???
    comunque nella pagina ho trovato questi errori javascript:
    [ERRORI JAVASCRIPT CATTURATI CON EXPLORER]
    Dettagli errore pagina Web

    Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2)
    Timestamp: Tue, 14 Sep 2010 14:39:42 UTC

    Messaggio: 'document.forms.form_art.elements[...].value' è nullo o non è un oggetto
    Linea: 83
    Carattere: 9
    Codice: 0
    URI: http://www.pescasport2000.it/Front/My_js/user_panel.js

    Messaggio: 'document.forms.form_art.elements[...].value' è nullo o non è un oggetto
    Linea: 100
    Carattere: 9
    Codice: 0
    URI: http://www.pescasport2000.it/Front/My_js/user_panel.js

    Messaggio: 'document.forms.form_art.elements[...].value' è nullo o non è un oggetto
    Linea: 100
    Carattere: 9
    Codice: 0
    URI: http://www.pescasport2000.it/Front/My_js/user_panel.js

    [/fine]

    la mia funzione è scritta così:
    [JAVASCRIPT]
    function ctrl_quant_art(id_art,opzione){
    if(opzione == 1){
    var temp = 0;
    temp = document.forms['form_art'].elements[id_art].value;
    if(temp != 0){
    temp --;
    document.forms['form_art'].elements[id_art].value = temp;
    temp=0;
    }
    }
    if(opzione == 2){
    temp = 0;
    temp = document.forms['form_art'].elements[id_art].value;
    temp++;
    tot_disp = id_art+'_max';
    if(temp > document.forms['form_art'].elements[tot_disp].value){
    alert('Il numero massimo acquistabile e\' document.forms['form_art'].elements[tot_disp].value')
    }
    else
    document.forms['form_art'].elements[id_art].value = temp;
    }
    nuovo_totale();
    }

    [/JAVASCRIPT]
    nuovo totale invece sarebbe una funzione che mi serve per visualizzare il totale in quel dato momento,ha questo codice e nemmeno và con explorer:
    [JAVASCRIPT]
    tot_id = document.forms['form_art'].elements['num_all_id'].value;
    all_id = document.forms['form_art'].elements['elenco_all_id'].value.split(';');
    totale=0;
    for(cont=0;cont<tot_id;cont++){
    id = all_id[cont]+'_prezzo';
    prezzo_singolo_articolo=document.forms['form_art'].elements[id].value;
    id = all_id[cont]+'_n';
    totale_parz = prezzo_singolo_articolo * document.forms['form_art'].elements[id].value
    totale = totale + totale_parz;
    }
    var ris = totale * Math.pow(10,2);
    ris = Math.round(ris);
    totale = ris / Math.pow(10,2);
    document.getElementById('ris_javascript').innerHTM L = totale;
    [/JAVASCRIPT]

    Come mai?Sono gli oggetti che sono inapplicabili con explorer?
    Spero di non aver postato male...
    grazie e saluti a tutti

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    o [code] [/ code]
    o [php] [/ php]
    non [quellochetipare] [/quellochetipare]

  6. #6
    Ti da errore sulle righe dove compare
    codice:
    document.forms['form_art'].elements[id]
    Controlla che la variabile id contenga veramente l'id del oggetto che ti interessa, senza l'html non lo posso vedere

  7. #7
    Scusa di nuovo Xinod nelle parentesi quadre ho messo l'argomentazione :-)
    Alla prossima penso che riuscirò....
    Utente Roman Fedorov con mozilla e safari funziona a perferzione,quindi gli id gli arrivano perfettamente se ho cpaito quello che mi chiedevi...

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Devi usare la fantasia per attribuire i nomi alle variabili: "id" al pari di "form", "value", "submit" e cose simili sono parole riservate ...

    In linea di massima qualunque cosa abbia lo stesso nome di tag html o oggetti vari o metodi o proprieta' non puo' essere usato.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Ciao br1, i nomi li ho cambiati... Tu vedi qualcosa di anomalo? Come identificativo del campo ho usato id al posto di name,se poi ti riferisci alla variabile che uso per la query e che mando alla funzione javascript, prende questo valore:
    (id univoco dell'articolo)_n,quindi ho esempio:
    18_n
    22_n
    35_n
    ecc...
    che è il valore id univoco dei campi,cliccando sul primo aggiungi della lista di articoli,internet explorer che fà:
    se ho 3 articoli,al valore che dovrebbe prendermi da un campo hidden di tipo input type="text"
    che si chiama per esempio 18_n mi và a prendere il valore di un altro campo hidden che si chiama 35_prezzo,che poi è l'ultimo della lista(seguendo i 3 esempi di id qualche riga dietro)..
    è questo che non capisco..
    il costrutto javascript è sempre:

    [javascript]
    alert(document.forms['form_art'].elements[id_art].value);
    [/javascript]

    dove form_art è il nome del form,id_art è il parametro che arriva alla funzione..ed arriva corretto...

    Per ricapitolare io chiedo il valore del campo id_art che in un dato momento del click si chiama 18_n,e explorer a differenza di mozilla e safari mi chiama il valore di un campo che sempre in quel momento del click è 35_prezzo,cioè il prezzo dell'ultimo articolo della lista...
    và sempre alal fine dell'array evidentemente,perchè,quando l'indice dell'array dovrebbe essere 18_n e prelevarmi quel valore,e come se interpretassero diversamente gli oggetti
    del codice:

    [javascript]
    alert(document.forms['form_art'].elements[id_art].value);
    [/javascript]

    quindi mi collego all'utnete Roman Fedorov,qualche post sopra,che mi faceva controllare che lavariabile gli arrivi corretta,e gli arriva corretta,il nome del campo dove prendere il valore è giusto,ma poi si prende il valore un altro campo.....

    non c stò capendo niente...

  10. #10
    Ciao,
    potresti per favore specificare il codice html almeno della parte a noi interessata che sarebbe piu semplice da capire?
    E comunque, visto che sembra il problema di recupero di un oggetto e solo da parte del IE, potresti provare a tagliare la testa al toro con un bel document.getElementById e via

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.