javascript - 表单中的 Javascript 变量
问题描述
我正在创建一个使用他们的 API 拉下静态谷歌地图图像的过程。
我有一个表单,其中包含带有以下地图图像选项的单选按钮:
Satellite
Roadmap
Hybrid
Terrain
单选按钮采用一种形式 - 其中一部分如下:
<summary>Basemap</summary>
<div class="group">
<p>Select a Map Style:</p>
<p>
<label><input type="radio" name="basemapStyle" id="basemapStyle" value="Satellite" checked /> Satellite</label>
<label><input type="radio" name="basemapStyle" id="basemapStyle" value="Roadmap"/> Roadmap</label>
<label><input type="radio" name="basemapStyle" id="basemapStyle" value="Hybrid" /> Hybrid</label>
<label><input type="radio" name="basemapStyle" id="basemapStyle" value="Terrain" /> Terrain</label>
</p>
</div>
我有一个从 html 页面调用的底层 javascript 文档。
它包含以下代码:
var bmStyle = document.getElementById("basemapStyle").value;
if (bmStyle = "Satellite" ) {
var basemapStyle = "&maptype=satellite&scale=4&format=png32&key=xxxx";
}
else if (bmStyle = "Roadmap" ) {
var basemapStyle = "&maptype=roadmap&scale=4&format=png32&key=xxxx";
}
else if (bmStyle = "Hybrid" ) {
var basemapStyle = "&maptype=hybrid&scale=4&format=png32&key=xxxx";
}
else if (bmStyle = "Terrain" ) {
var basemapStyle = "&maptype=terrain&scale=4&format=png32&key=xxxx";
}
页面加载成功并生成“底图”。但是,选中的单选按钮没有任何区别,并且 if else 语句中唯一的第一个变量似乎已加载。
我觉得 if else 语句中有一些逻辑错误,但我似乎无法理解它。
解决方案
首先:
你的条件中有这个:
if (bmStyle = "卫星")
相反,您应该使用:
if (bmStyle == "卫星")
if (bmStyle == "Satellite" ) {
var basemapStyle = "&maptype=satellite&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Roadmap" ) {
var basemapStyle = "&maptype=roadmap&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Hybrid" ) {
var basemapStyle = "&maptype=hybrid&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Terrain" ) {
var basemapStyle = "&maptype=terrain&scale=4&format=png32&key=xxxx";
}
第二:
ID应该是唯一的,所以你必须改变它。
代码解决方案(使用重复的 ID):
var bmStyle = $('#basemapStyle:checked').val()
if (bmStyle == "Satellite" ) {
var basemapStyle = "&maptype=satellite&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Roadmap" ) {
var basemapStyle = "&maptype=roadmap&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Hybrid" ) {
var basemapStyle = "&maptype=hybrid&scale=4&format=png32&key=xxxx";
}
else if (bmStyle == "Terrain" ) {
var basemapStyle = "&maptype=terrain&scale=4&format=png32&key=xxxx";
}
推荐阅读
- python - 什么是最快的算法:在字符串列表中,删除作为另一个字符串的子字符串的所有字符串 [Python(或其他语言)]
- java - 有什么方法可以使用 ViewBinding 为参数化布局充气?
- python - Python Pandas 加载日期和日期范围
- sql - 用于获取具有多个值的单个列的 SQL 查询
- javascript - 如何在 JavaScript 中与 json 交互?
- r - 如何将不同的行值组合成R中的单列
- python - VS Code 中的 Python:从子文件夹导入模块时出错
- python - 我该怎么做才能使我的约会时间变得可行?
- docker - 我可以使用 Hasura 快速入门进行生产吗?
- php - Docker:docker-compose 将文件从容器复制到主机