刚刚开始学习JavaScript;编写一些具有相对基本功能的计算器。我发现有必要将多个变量值放在下拉菜单的选项标签中,经过研究,我认为最简单的方法是将它们放在一个字符串中,然后用split()
函数拆分它们,但无论我指定的分隔符是什么,它都会像没有一样,并单独拆分每个字符。为什么?
<select name="fuel" onChange="document.scalc.fuel.value=document.scalc.fuel.value.split(',')">
<option value="199x1,50">cu/ft Natural Gas(Via Storage Tank Burner, 65% Efficient)</option>
</select>
Cᴏʀʏ提出了一些好的观点。此外,在测试JavaScript时,打开浏览器的JavaScript控制台会很有帮助,这样它就可以向您显示遇到的任何错误。
我根本无法让你的示例代码做任何事情——也许你把它缩短得有点太多了。
你的页面可能看起来像
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Example</title>
<script>
/* TODO: Give this function a meaningful name. */
function x(srcId, targetId) {
// Get reference to the source element
var src = document.getElementById(srcId);
// Make sure it is a select element
if (src.nodeName.toLowerCase() === "select") {
var target = document.getElementById(targetId);
// Put the first part of the source's value in the target
target.value = src.value.split(",")[0];
}
}
</script>
</head>
<body>
<form id="scalc">
<select id="fuel" onChange="x('fuel', 'result')">
<option value="199x1,50">cu/ft Natural Gas(Via Storage Tank Burner, 65% Efficient)</option>
<option value="50x2,60">cu/ft Natural Gas(Via Super Burner, 70% Efficient)</option>
</select>
<input id="result" type="text" readonly="readonly" />
</form>
</body>
</html>
参考文献:
<元字符集='utf-8'>与<meta-http-equiv='Content-Type'>
最佳实践:通过HTML id或名称属性访问表单元素
javascript如何确定html元素的类型
也很有用:W3C标记验证服务