JavaScript HTML对象HTMLSelectElement

thi*_*wgu 0 html javascript object innerhtml

我正在尝试创建一个小HTML表单,我的用户需要从复选框和下拉列表中选择一些选项.预期结果是在用户更改其选择时动态生成的文本.这个想法确实有效,但我不断从下拉框中获取"[object HTMLSelectElement]"而不是所选选项的值.如果你们中的一位经验丰富的JavaScript程序员能给我你的意见我会非常感激!我花了很多时间仔细检查所有内容,我很确定我的代码在语法上是正确的,但是如果没有意识到,我可能完全错了.我是JavaScript的新手,所以我还处于学习阶段.

HTML代码:

<form name="input" action="" method="get">
<input type="checkbox" name="stCode" id="ai1" onChange="generateSTcode()">
Analog Input B1
<select name="sensorType" id="sensorType1" onChange="generateSTcode()">
<option value="2">0-1 Vdc</option>
<option value="3">0-10 Vdc</option>
<option value="4">4-20mA</option>
<option value="5">Off/On</option>
<option value="6">0-5 Vdc</option>
</select>
<select name="sensor" id="sensor1" onChange="generateSTcode()">
<option value="oatp_ai">Outside air temperature</option>
<option value="satp_ai">Supply air temperature</option>
<option value="ratp_ai">Return air temperature</option>
<option value="mxtp_ai">Mixed air temperature</option>
</select><br><br>
<input type="checkbox" name="stCode" id="ai2" onChange="generateSTcode()">
Analog Input B2
<select name="sensorType" id="sensorType2" onChange="generateSTcode()">
<option value="2">0-1 Vdc</option>
<option value="3">0-10 Vdc</option>
<option value="4">4-20mA</option>
<option value="5">Off/On</option>
<option value="6">0-5 Vdc</option>
</select>
<select name="sensor" id="sensor2" onChange="generateSTcode()">
<option value="oatp_ai">Outside air temperature</option>
<option value="satp_ai">Supply air temperature</option>
<option value="ratp_ai">Return air temperature</option>
<option value="mxtp_ai">Mixed air temperature</option>
</select><br><br>
<input type="checkbox" name="stCode" id="ai3" onChange="generateSTcode()">
Analog Input B3
<select name="sensorType" id="sensorType3" onChange="generateSTcode()">
<option value="2">0-1 Vdc</option>
<option value="3">0-10 Vdc</option>
<option value="4">4-20mA</option>
<option value="5">Off/On</option>
<option value="6">0-5 Vdc</option>
</select>
<select name="sensor" id="sensor3" onChange="generateSTcode()">
<option value="oatp_ai">Outside air temperature</option>
<option value="satp_ai">Supply air temperature</option>
<option value="ratp_ai">Return air temperature</option>
<option value="mxtp_ai">Mixed air temperature</option>
</select><br><br>
</form>?
<div id="generatedCode" class="generatedCode"></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript代码:

function generateSTcode(){
var stCodegenerated = "";    
var analogInputCh = new Array(3);
analogInputCh[0] = document.getElementById('ai1');
analogInputCh[1] = document.getElementById('ai2');
analogInputCh[2] = document.getElementById('ai3');
var sensorType = new Array(3);
sensorType[0] = document.getElementById('sensorType1');
sensorType[1] = document.getElementById('sensorType2');
sensorType[2] = document.getElementById('sensorType3');
var sensor = new Array(3);
sensor[0] = document.getElementById('sensor1');
sensor[1] = document.getElementById('sensor2');
sensor[2] = document.getElementById('sensor3');
for(i = 0; i < analogInputCh.length; i++){
if(analogInputCh[i].checked){
var iTemp = i + 1;
stCodegenerated += "Ain_Conf(" + iTemp + ", " + sensorType[i] + ", AI_0" + iTemp + "); " 
+ sensor[i] + " := AI_0" + iTemp + ";" + "<br><br>";
}
}
document.getElementById("generatedCode").innerHTML = stCodegenerated;
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/XB63m/

Nic*_*ngo 11

这是因为你需要使用的.value属性HTMLElement.

示例如下:

var myElement = document.getElementById('myElement'),
    myElementValue = myElement.value;
Run Code Online (Sandbox Code Playgroud)

等等.

请注意value,如果要获取应使用的标记内容,则仅适用于输入innerHTML.

编辑:我编辑了你的代码,现在它运行良好(在for循环中var声明之前i可能会导致问题)这是你更新的JSFiddle