您好我正在尝试使用javascript创建下拉菜单,其中一旦我选择了地方,我将在输入框中打印出一个将是纬度的地方,在第二个我将获得经度。我的问题是我只能输入Lat或Lon到输入中,所以我想知道有没有办法做到这两个打印?谢谢。这是我的代码:
<html>
<script language="JavaScript"><!--
function onChange() {
var Current =
document.formName3.selectName3.selectedIndex;
document.formName3.Lat1.value =
document.formName3.selectName3.options[Current].value;
document.formName3.Lon2.value =
document.formName3.selectName3.options[Current].value;
}
//--></script>
<body>
<form
name="formName3"
onSubmit="return false;"
>
<select
name="selectName3"
onChange="onChange()"
>
<option
value=""
>
Find Place
<option
value = "52.280431"
value ="-9.686166"
>
Shop
<option
value = "52.263428"
value="-9.708326"
>
Cinema
<option
value = "52.270883"
value="-9.702414"
>
Restaurant
<option
value = "52.276112"
value="-9.69109"
>
Hotel
<option
value = "52.278994"
value="-9.6877"
>
Petrol Station
</select>
<br><br>
Lat2
<input
name="Lat1"
type="text"
value=""
>
Lon2
<input
name="Lon2"
type="text"
value=""
>
</form>
</body>
</html
答案 0 :(得分:3)
Option只有一个值,而不是两个。
而不是使用你拥有的东西,而是考虑提供一个以空格分隔的列表作为你的选择,例如:
<!-- make sure to close all your tags as shown below -->
<option value = "52.280431 -9.686166">Shop</option>
然后你需要在你的Javascript中分解它们
function onChange() {
var Current =
document.formName3.selectName3.selectedIndex;
var latLong = document.formName3.selectName3.options[Current].value;
// handle case where the value is ""
if (!latLong) {
document.formName3.Lat1.value = "";
document.formName3.Lon2.value = "";
return;
}
// split them on space
var latLongItems = latLong.split(" ");
// latLongItems[0] contains first value
document.formName3.Lat1.value = latLongItems[0];
// latLongItems[1] contains second
document.formName3.Lon2.value = latLongItems[1];
}
您可以在行动here中看到这一点。请注意,我通过在window.onload处理程序中而不是在HTML中附加所有处理程序来使您的Javascript不那么突兀。不引人注目的Javascript被认为是Javascript的最佳实践。
答案 1 :(得分:0)
你走了,我摆弄了一个解决方案。