我有一个表单,按钮调用一个函数onclick:
<form>
<input type="text" id="start" name="start">
<input type="button" onclick="calcRoute();" value="Go">
</form>
function calcRoute() {
var start = document.getElementById('start').value;
var end = "My Address in Rome";
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.TRANSIT
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
如果单击“开始”按钮(<input type="button">
),它在每个浏览器上都能正常工作。如果我填充<input type="text">
并按下键盘上的ENTER(或者例如按下iOS键盘中的“Go”按钮)则不会。所以:如果我按下输入类型=“按钮”,它就有效,而不是按键盘上的ENTER键。我怎样才能让它以这种方式工作呢?提前致谢
编辑:请不要使用jQuery或其他框架。 :)
答案 0 :(得分:3)
你应该真正删除内联javascript并将该按钮变为真正的提交按钮。之后,您可以轻松捕获正在提交的表单(输入密钥或提交按钮):
form.addEventListener('submit', calcRoute);
答案 1 :(得分:0)
试试这个:
<form onsubmit="calcRoute()">
<input type="text" id="start" name="start">
<input type="button" onclick="calcRoute();" value="Go">
</form>
我确信它可以同时使用
答案 2 :(得分:0)
如果使用jquery
,可能会在代码中添加此内容$(document).ready(function() {
$("#start").bind('keyup',function(event){
if(event.keyCode == 13){
$("#start").click();
}
});
});
按下文本框中的回车键,将触发按钮点击功能。
如果你不使用jquery试试这个
<input type="text" id="start" name="start" onkeydown="if (event.keyCode == 13) document.getElementById('fire_calRoute').click()">
<input type="button" id='fire_calRoute' onclick="calcRoute();" value="Go">
试试这个,希望它能解决你的问题。
答案 3 :(得分:0)
<input type="text" id="start" name="start" onkeypress="return calcRoute(event)">
现在修改你的脚本如下:
function calcRoute(e) {
if (e.keyCode == 13) {
//your code
}
}
答案 4 :(得分:0)
我找到了解决方案:)
<form onsubmit="calcRoute(); return false">
<input type="text" id="start" name="start">
<input type="submit" value="Vai">
</form>