我有一个包含大约100个下拉菜单的页面,我需要将其传递给另一个。所以,我已将所有内容放入我通过javascript发送的数组中。但是,我不确定如何让javascript在发送之前查看下拉列表的更改值。我嘲笑了一些代码,让你了解问题。它仅在页面初始化时发送下拉框的值。任何帮助将不胜感激。
<select id="mydropdown">
<option value="Milk">Fresh Milk</option>
<option value="Cheese">Old Cheese</option>
<option value="Bread">Hot Bread</option>
</select>
<script>
var data = new Array();
data[0] = document.getElementById("mydropdown").value;
</script>
<form name="data" method="POST" action="passdata1b.php">
<input type="hidden" name="data">
</form>
<script>
function sendData()
{
// Initialize packed or we get the word 'undefined'
var packed = "";
for (i = 0; (i < data.length); i++) {
if (i > 0) {
packed += ",";
}
packed += escape(data[i]);
}
document.data.data.value = packed;
document.data.submit();
}
</script>
<h1>This is what the array contains:</h1>
<ul>
<script>
for (i = 0; (i < data.length); i++) {
document.write("<li>" + data[i] + "</li>\n");
}
</script>
</ul>
<a href="javascript:sendData();">Go to passdata1b.php</a>
答案 0 :(得分:1)
为什么不能说出这个逻辑:
var data = new Array();
data[0] = document.getElementById("mydropdown").value;
在sendData()
功能中?
评论是否需要一个示例,但这应该是一个非常简单的修复。这样,当您单击该链接并运行sendData()
时,它将解析mydropdown
值...而不是在页面加载时执行此操作。
答案 1 :(得分:1)
Sam的回答很好,除了......
data[0] = document.getElementById("mydropdown").value;
..因为它是一个下拉菜单而无法工作。而是获取所选选项的值。请改用:
var zeData = document.getElementById("mydropdown");
data[0] = zeData.options[zeData.selectedIndex].value;