隐藏& lt; input>不是以“形式”出现的;包含在"标签"序列
hidden <input> not in a <form> is included in "tab" sequence
在谷歌地图v3我使用的是一个信息窗口。我使用以下变量作为信息窗口的内容(因为我不知道在这种情况下如何使用a)。
var inputForm = 'Name: <input type="text" id="nameinput" size="31" maxlength="31" tabindex="1" />' + '<input type="hidden" id="pinId" value="' + counter + '" />' + '<button id="inputButton">Submit</button>';
问题是,在信息窗口气泡中的"隐藏"输入需要为用户提供额外的选项卡。我已经阅读了SO中的答案,建议使用<div
和display: none
,但我不知道在像inputForm
这样的变量中使用<div
。
如何删除不需要的选项卡?
编辑代码:
要测试此代码,单击某个位置,就会出现带有信息窗口的标记。单击气泡内部,然后使用Tab键查看它停在文本字段和Submit按钮之间。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js">
</script>
<script type="text/javascript">
var map;
var inwindow = new google.maps.InfoWindow();
var markers = [];
var counter = 0;
function initialize() {
var NY = new google.maps.LatLng(40.739112, -73.785848);
map = new google.maps.Map(
document.getElementById('map-canvas'), { center: NY, zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP });
google.maps.event.addListener(map, 'click', function (event) {
addMarker(event.latLng);
});
google.maps.event.addListener(inwindow, 'domready', function () {
var button = document.getElementById('inputButton');
button.onclick = function() {
var input = document.getElementById('nameinput').value;
var id = parseInt(document.getElementById('pinId').value);
titleMarker(id, input);
inwindow.close();
};
});
function addMarker(location) {
counter++;
var inputForm = 'Name: ' + '<input type="text" id="nameinput" size="31" maxlength="31" tabindex="1" />' + '<input type="hidden" id="pinId" value="' + counter + '" tabindex="-1" />' + '<button id="inputButton">Submit</button>';
var marker = new google.maps.Marker({
position: location,
map: map,
draggable: true,
id: counter
});
inwindow.setContent(inputForm);
inwindow.open(map, marker);
markers.push(marker);
}
function titleMarker(markerId, markerTitle) {
for (var i=0; i<markers.length; i++) {
if (markers[i].id === markerId) {
markers[i].setTitle(markerTitle);
}
}
}
google.maps.event.addDomListener(window, "load", initialize);
</script>
</head>
<body>
<div id="map-canvas"/>
</body>
</html>
如果你不想让元素被标签化,将tabindex设置为-1
,这会从tabindex
var inputForm = 'Name: ' +
'<input type="text" id="nameinput" size="31" maxlength="31" tabindex="1" />' +
'<input type="hidden" id="pinId" value="' + counter + '" tabindex="-1" />' +
'<button id="inputButton">Submit</button>';
必须是隐藏输入吗?为什么不直接将值存储为输入本身的数据属性呢?
var inputForm = 'Name: ' +
'<input type="text" id="nameinput" size="31" maxlength="31" tabindex="1" data-pinid="'+ counter +'" />' +
'<button id="inputButton">Submit</button>';
那么你可以像这样检索它:
var input = document.getElementById('nameinput').value;
var id = parseInt(input.getAttribute('data-pinid'));
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 货币代码为欧元-金额的格式不应包含小数
- 如何包含特定于每个视图angularjs的javascript文件
- 我如何修复包含在captcha的addthis中的错误
- 正在注入包含JS的HTML
- Json数据包含日期和时间格式
- 解析字符串包含'"'从mysql检索到JSON
- 我收到一个类型错误,其中包含-"$不是函数“;使用noConflict时
- 解析包含未被“”包围的键的JSON"与Objective-C
- "未终止的模板文字“;当文字包含脚本标记时出现语法错误
- jQuery"不包含“;选择器
- 在html文本框中,如何显示本身包含“”的值"象征
- 检查字符串是否只包含“0”-"什么都没有
- Nodejs-Mysql:"SyntaxError:意外的输入结束“;如果查询包含'其中'
- 如何编写包含“”的正则表达式;A-Z”;以及“;a-z”;以及“;0-9”;以及“-"以及“_&”;
- 错误:未捕获的异常:[exception.."字符串包含一个..quot;
- 获取"data something“;从<选项>包含在<选择>
- "响应性”;Chart.js图表比包含窗口高
- 获取最后一个字符串“"其可以包含“&”;
- 如何创建语句if包含"&"