使用JavaScript更改HTML表单输入

使用JavaScript更改HTML表单输入,javascript,html,forms,Javascript,Html,Forms,我正在尝试为游戏探路者制作一个可编辑的角色表。我有一个用于选择一个种族,并为每个种族设置了一个值。我的值是一个字符串。我需要做的是,当一场比赛被选中时,我需要更新一个输入表单 Javascript应该为要修改的stat分配一个变量。然后,用户将键入基本统计数字,当完成时,javascript将从用户输入的值中添加或减去任何修饰符 例如:矮人的体质得分为+2。因此,当用户从下拉菜单中选择dwarf时,我需要我的脚本识别它并声明一个等于2的变量。然后用户会输入基本统计数据,比如说13。一旦他们输入了

我正在尝试为游戏探路者制作一个可编辑的角色表。我有一个
用于选择一个种族,并为每个种族设置了一个值。我的值是一个字符串。我需要做的是,当一场比赛被选中时,我需要更新一个输入表单

Javascript应该为要修改的stat分配一个变量。然后,用户将键入基本统计数字,当完成时,javascript将从用户输入的值中添加或减去任何修饰符

例如:矮人的体质得分为+2。因此,当用户从下拉菜单中选择dwarf时,我需要我的脚本识别它并声明一个等于2的变量。然后用户会输入基本统计数据,比如说13。一旦他们输入了这个数字,代码就会自动将输入字段更新为15

我已经知道了如何在
之类的事情上做到这一点,但我无法在文本输入中获得它。我意识到简单的事情是将选项值设置为任何奖金数字,但是比赛会影响3个属性,两个是正面的,一个是负面的。因此,我只能理解如何使用in/else语句执行此操作。我对这个很陌生

这是我的密码。非常感谢您的帮助

<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>

函数createModifier(){
var race=document.getElementById(“race”);
如果(race=“cat”){
var-strMod=3;
}
否则{
var-strMod=1;
}
document.getElementById(“strElm”).innerHTML=10+strMod;
}
比赛

阿西马尔 猫科动物 换生灵 半吸血鬼 卓尔 灰矮人 矮子 精灵 迷人的 吉尔曼 侏儒 妖精 格里普利 半精灵 半身 半兽人 妖精 人类 伊夫利特 基特苏内 科博尔德 人鱼 纳加吉 兽人 奥里亚 老鼠 萨马兰 斯特里克斯 舒利 地底侏儒 精灵 天狗 魔人 昂丁 瓦纳拉 维什卡尼亚 瓦阳

/表格>
你说的是
如果(race=“cat”)
,它告诉
race
等于
cat
,而不是确定它是否等于。您需要使用
=
而不是
=

不管怎样,你的问题就在这一行

var race = document.getElementById("race");
应该是

var race = document.getElementById("race").value;
换成新的怎么样

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

上面代码行中的错误是您没有比较字符串

if (race = "cat") {
应改为

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

爪哇!=javascript您想做的是
race==“cat”
而不是
race=“cat”
,根据用户选择的种族,您可以使用“switch”,这似乎是最理想的选择。@事实证明,Anirudh
switch
语句比简单的2条件
if/else
语句要慢。以毫秒为单位,而不是一个LOT。您的
strElm
元素在哪里?