2016-03-29 15 views
5

Sto provando a creare un foglio di caratteri modificabile per il gioco Pathfinder. Ho un <select> per scegliere una gara e un valore impostato per ogni gara. Il mio valore è una stringa però. Quello che devo fare è quando viene selezionata una gara. Ho bisogno di un modulo di input per essere aggiornato.Modifica di un modulo HTML con JavaScript

Il Javascript deve assegnare una variabile per la stat che deve essere modificata. L'utente dovrebbe quindi digitare il numero di statistica di base e una volta terminato il javascript dovrebbe quindi aggiungere o sottrarre qualunque sia il modificatore dal valore inserito dall'utente.

Ad esempio: Un nano ottiene un +2 al proprio punteggio di costituzione. Quindi, quando un utente seleziona il nano dal menu a tendina, ho bisogno che il mio script riconosca quello e dichiari una variabile uguale a 2. L'utente digiterà quindi la statistica di base, diciamo 13. Una volta che hanno finito di inserire in quel numero il codice aggiornerebbe automaticamente il campo di input a 15.

Ho capito come farlo per cose come <p> ma non riesco a ottenerlo per gli input di testo. Mi rendo conto che la cosa facile sarebbe impostare il valore dell'opzione su qualunque sia il numero del bonus, ma le statistiche dell'effetto Razza 3, due positivamente e una negativamente. Quindi posso solo capire come farlo con le dichiarazioni in/else. Sono molto nuovo a questo.

Ecco il mio codice. Qualsiasi aiuto è molto apprezzato.

<script> 
function createModifier() { 

var race = document.getElementById("race"); 

if (race = "cat") { 
    var strMod = 3; 
} 
else { 
    var strMod = 1; 
} 
document.getElementById("strElm").innerHTML = 10 + strMod; 
} 
</script> 
</head> 
<body> 

<form> 
    <div id="raceSelector" class="attribute"> 
<p><strong>Race</strong></p> 
    <select name="race" id="race"> 
<option value="aas">Aasimar</option> 
<option value="cat">Catfolk</option> 
<option value="cha">Changeling</option> 
<option value="dha">Dhampir</option> 
<option value="dro">Drow</option> 
<option value="due">Duergar</option> 
<option value="dwa">Dwarf</option> 
<option value="elf">Elf</option> 
<option value="fet">Fetchling</option> 
<option value="gil">Gillman</option> 
<option value="gno">Gnome</option> 
<option value="gob">Goblin</option> 
<option value="gri">Grippli</option> 
<option value="hale">Half-Elf</option> 
<option value="half">Halfing</option> 
<option value="halo">Half-Orc</option> 
<option value="hob">Hobgoblin</option> 
<option value="hum">Human</option> 
<option value="ifr">Ifrit</option> 
<option value="kit">Kitsune</option> 
<option value="kob">Kobold</option> 
<option value="mer">Merfolk</option> 
<option value="nag">Nagaji</option> 
<option value="orc">Orc</option> 
<option value="ore">Oread</option> 
<option value="rat">Ratfolk</option> 
<option value="sam">Samaran</option> 
<option value="str">Strix</option> 
<option value="sul">Suli</option> 
<option value="svi">Svirfneblin</option> 
<option value="syl">Sylph</option> 
<option value="ten">Tengu</option> 
<option value="tie">Tiefling</option> 
<option value="und">Undine</option> 
<option value="van">Vanara</option> 
<option value="vis">Vishkanya</option> 
<option value="way">Wayang</option> 
</select> 
</div> 
<div class="attribute"> 
    <input type="text" onchange="createModifier()"></input> 
    <p id="modStr"></p> 
</div> 
/form> 
+0

Java! = JavaScript – nnnnnn

+0

Si vuole fare 'gara == "cat"' e non 'corsa = "cat"' – Yani

+0

Beh si potrebbe usare "interruttore "che sembra ideale per questo, in base a quale razza l'utente seleziona. – Anirudh

risposta

2

che stai dicendo if (race = "cat") che sta dicendo race essere uguale a cat, non determinare se sia o meno. È necessario utilizzare == non =

In ogni caso, il problema risiede in questa linea

var race = document.getElementById("race"); 

Va

var race = document.getElementById("race").value; 
0

Che ne dite di cambiare a

if (race.value == "cat") { 
var strMod = 3; 
0

L'errore nella riga di codice precedente è che non si stanno confrontando stringhe.

if (race = "cat") { 

dovrebbe essere cambiata a

if (race.value == "cat") { 
Problemi correlati