首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript超文本标记语言对象HTMLSelectElement

JavaScript超文本标记语言对象HTMLSelectElement
EN

Stack Overflow用户
提问于 2013-05-22 02:09:59
回答 2查看 37.6K关注 0票数 0

我正在尝试创建一个小的HTML表单,我的用户需要从复选框和下拉列表中选择一些选项。预期的结果是在用户更改其选择时动态生成的文本。这个想法确实行得通,但我一直得到“object HTMLSelectElement”,而不是从下拉框中选择的值。如果你们中有一位经验丰富的JavaScript程序员能给我一些意见,我将不胜感激!我花了相当多的时间仔细检查所有东西,我非常确定我的代码在语法上是正确的,但我可能在没有意识到这一点的情况下完全错误。我是JavaScript的新手,所以我还处于学习阶段。

HTML代码:

代码语言:javascript
复制
<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>

JavaScript代码:

代码语言: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;
}

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-22 02:12:19

这是因为您需要使用HTMLElement.value属性。

示例如下:

代码语言:javascript
复制
var myElement = document.getElementById('myElement'),
    myElementValue = myElement.value;

诸若此类。

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

编辑:我编辑了您的代码,现在它工作得很好(在for循环中声明i之前有一个var,这可能会导致问题),这是您更新后的JSFiddle

票数 11
EN

Stack Overflow用户

发布于 2013-05-22 02:24:11

sensorTypesensorselect元素的数组。select元素的当前选定值存储在其value中。将for循环中的代码更改为以下内容:

代码语言:javascript
复制
stCodegenerated += "Ain_Conf(" + iTemp + ", " + sensorType[i].value + ", AI_0" + iTemp + "); " 
        + sensor[i].value + " := AI_0" + iTemp + ";" + "<br><br>";

然后,每次用户更改元素的状态时,您都会得到如下内容:

代码语言:javascript
复制
Ain_Conf(1, 2, AI_01); oatp_ai := AI_01;

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16676679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档