Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2019
    Messaggi
    41

    Sostituire document.write con l'operatore +=

    Salve a tutti ho una pagina in cui la griglia del tris viene generata tramite un cliclo for con "document.write" e quello che vorrei fare è sostituire il document.write con l'operatore "+=" ma visualizzo l'errore "document.forms[0].elements[i].value is not defined". Allego i codici della pagina:
    codice:
    for (i = 1; i < 10; i++) {
                                if (i % 3 == 1) {
                                    document.write('<tr>');
                                }
                                document.write('<td><Input Type="Button" Name="' + i + '" Value="    " Class="block" onClick="change(this.form,this)"></td>');
                                if (i % 3 == 0) {
                                    document.write('</tr>');
                                }
                            }
    codice:
    timerID = xnum = ynum = znum = auto = 0;
                who = 'Giocatore 1';
    
                function init() {
                    cell = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
                    add = new Array();
                    empty = add;
                    turnstep = exch = 1;
                    wins = times = 0;
                    document.forms[0].player1.value = xnum;
                    document.forms[0].player2.value = ynum;
                    document.forms[0].draw.value = znum;
                    if (who != 'Start' || true) {
                        for (i = 0; i < cell.length; i++) {
                            cell[i] = 0;
                            if (i > 0) {
                                document.forms[0].elements[i].value = '';
                            };
                        }
                    }
                    document.forms[0].turn.value = who;
                }
    
                function win() {
                    if (cell[1] + cell[2] + cell[3] == 3 ||
                        cell[4] + cell[5] + cell[6] == 3 ||
                        cell[7] + cell[8] + cell[9] == 3 ||
                        cell[1] + cell[4] + cell[7] == 3 ||
                        cell[2] + cell[5] + cell[8] == 3 ||
                        cell[3] + cell[6] + cell[9] == 3 ||
                        cell[1] + cell[5] + cell[9] == 3 ||
                        cell[3] + cell[5] + cell[7] == 3) {
    
                        if (confirm("Giocatore 1\: hai vinto!\nVuoi giocare di nuovo?")) {
                            wins = 1;
                            xnum++;
                            who = 'Giocatore 1';
                            timerID = init();
                        } else {
                            xnum++;
                            who = 'Start';
                            timerID = init();
                        };
                    } else if (cell[1] + cell[2] + cell[3] == 30 ||
                        cell[4] + cell[5] + cell[6] == 30 ||
                        cell[7] + cell[8] + cell[9] == 30 ||
                        cell[1] + cell[4] + cell[7] == 30 ||
                        cell[2] + cell[5] + cell[8] == 30 ||
                        cell[3] + cell[6] + cell[9] == 30 ||
                        cell[1] + cell[5] + cell[9] == 30 ||
                        cell[3] + cell[5] + cell[7] == 30) {
                        if (confirm("Giocatore 2\: hai vinto!\nVuoi giocare di nuovo?")) {
                            ynum++;
                            who = 'Giocatore 1';
                            timerID = init();
                        } else {
                            ynum++;
                            who = 'Start';
                            timerID = init();
                        };
                    } else if (times == 9) {
                        if (confirm("Pareggio!\n\nVuoi giocare di nuovo?")) {
                            znum++;
                            who = 'Giocatore 1';
                            timerID = init();
                        } else {
                            znum++;
                            who = 'Start';
                            timerID = init();
                        };
                    }
                }
    
                function exchange(turnstep) {
                    if (exch == 1) {
                        if (turnstep == 0) {
                            turnstep = 1;
                            who = "Giocatore " + 1
                        } else {
                            if (auto == 0) {
                                turnstep = 0;
                                who = "Giocatore " + 2
                            } else {
                                turnstep = 0;
                                who = "Computer";
                            }
                        }
    
    
                    } else {
                        turnstep = turnstep;
                    }
                    exch = 1;
                    return (turnstep);
                }
    
                function changeing(click) {
    
                    place = cell[click];
                    clicked = click;
    
                    if (place == 0) {
                        if (turnstep == 0) {
                            xo = "O";
                            place = 10;
                        } else {
                            xo = "X";
                            place = 1;
                        }
                        cell[click] = place;
                        times++;
                    } else {
                        if (place == 10) {
                            xo = "O";
                        }
                        if (place == 1) {
                            xo = "X";
                        }
                        exch = 0
                    }
                    return (xo);
                }
    
                function change(form, element) {
                    changeing(element.name);
                    element.value = xo;
                    turnstep = exchange(turnstep);
                    form.turn.value = who;
                    win();
                }
    
                init();
    Grazie per la disponibiltà, ho provato a modificare il ciclo for con il metodo dell'operatore "+=" ma visualizzo l'errore che ho descritto sopra.

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,384
    Ciao,
    metti il contenuto del document write in una variabile e alla fine del for fai il document write di quella
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2019
    Messaggi
    41
    Quindi se ho capito bene il codice diventa così:
    codice:
    for (i = 1; i < 10; i++) {                            if (i % 3 == 1) {
                                    var name1 = '<tr>';
                                }
                                var name = '<td><Input Type="Button" Name="' + i + '" Value="    " Class="block" onClick="change(this.form,this)"></td>';
                                if (i % 3 == 0) {
                                    var name3 = '</tr>';
                                }
                            }
    Grazie cordiali saluti

Tag per questa discussione

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 © 2021 vBulletin Solutions, Inc. All rights reserved.