目前我正在处理一段javascript来复制链接以及用户在select标签中选择的选项。
我在javascript中分配的变量仍未定义。有没有办法让这段代码有效?我不希望将ID属性与循环一起使用,除非这可以应用到我的PHP脚本中(我在其中回显select标签,因为我显示数据库结果,每当显示结果时,它也会显示一个选择标签)。此链接显示了我到目前为止所做的一个简单示例:http://jsfiddle.net/b31au78v/
这是我的代码:
<table>
<tr>
<th>Name</th>
<th>Gender</th>
</tr>
<tr>
<td>Hank</td>
<td>
<select onChange="getValue()" class="ddlEval">
<option>Select an option...</option>
<option val="gender.php?=male">Male</option>
<option val="gender.php?=female">Female</option>
</select>
</td>
</tr>
<tr>
<td>Jeff</td>
<td>
<select onChange="getValue()" class="ddleval">
<option>Select an option...</option>
<option val="gender.php?=male">Male</option>
<option val="gender.php?=female">Female</option>
</select>
</td>
</tr>
</table>
<script>
function getValue() {
optVal = this.value;
if(optVal != "Select an option...")
{
window.prompt("This is the link that's going to be coppied: ", "localhost:8080/" + optVal);
}
}
</script>
我想我需要用其他东西替换“this”,但这只是为了展示我真正想要发生的事情。
答案 0 :(得分:2)
考虑以下方法:
var optVal = selectTag.options[selectTag.selectedIndex].value;
在你的情况下(jsFiddle):
<script>
function getValue(s) {
optVal = s.options[s.selectedIndex].value;
if(optVal != "Select an option...")
{
window.prompt("This is: ", "localhost:8080/gender.php?=" + optVal);
}
}
</script>
更改onChange事件代码时:
<select onChange="getValue(this)"...
请注意,您还应该传递会员的ID /名称, 所以当有人改变第一个成员的性别时,它就不会与第二个成员发生冲突。
答案 1 :(得分:0)
这里有两个问题:
没有属性val
它应该是value
:
<option value="none">Select an option …</option>
<option value="gender.php?=male">Male</option>
注意:如果您没有属性value
,则该元素的值将是option
的文本 - 选择了元素。
this
具有不同的范围,因此它不知道名为this.value
的属性。但是,您可以将元素传递给函数,例如:
<select onchange="getValue(this);"></select>
然后你可以得到它的价值:
function getValue(e) {
var optVal = e.value;
if ('none' != optVal) {
window.prompt("This is the link that's going to be coppied: ", "localhost:8080/" + optVal);
}
}
<强>演示强>