请用ENTER和“转到”按钮在Safari手机(IOS)的onclick功能工作
我在其中的按钮调用的onclick函数形式:请用ENTER和“转到”按钮在Safari手机(IOS)的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或其他框架。 :)
试试这个:
<form onsubmit="calcRoute()">
<input type="text" id="start" name="start">
<input type="button" onclick="calcRoute();" value="Go">
</form>
我敢肯定它会与两个
Uhm,no:'(。表单以这种方式提交给服务器(在URL中我有'?start = INPUT_TEXT' – MultiformeIngegno 2013-04-28 13:33:25
我不知道你在做什么,因此不能正确回答,但试试:
Uhm,no。相同的行为。下面是演示:goo.gl/wr3qi,点击“calcola percorso”。:) – MultiformeIngegno 2013-04-28 13:37:23
工作,如果你使用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">
试试这个,希望这将解决您的问题。
不幸的是我 – MultiformeIngegno 2013-04-28 13:52:29
你应该真的只是删除内嵌的JavaScript,并将该按钮变成一个真正的提交按钮。之后,你可以轻松地捕获提交表单(阉来回车键或提交按钮):
form.addEventListener('submit', calcRoute);
我试过(这里是演示代码):http://ffio.it/test.html 点击“calcola percorso”。当你输入一个地址时,它应该建立路由。没有任何反应...... :) – MultiformeIngegno 2013-04-28 13:52:05
你已经覆盖了'calcRoute()'函数。只需将'e.preventDefault()'添加到您自己的函数中,并且不要忘记添加'e'作为参数。 – PeeHaa 2013-04-28 13:57:52
另外在你的具体情况下,你宁愿要''var form = document.getElementbyId('percorsoform');' – PeeHaa 2013-04-28 13:59:49
<input type="text" id="start" name="start" onkeypress="return calcRoute(event)">
现在修改脚本如下:
function calcRoute(e) {
if (e.keyCode == 13) {
//your code
}
}
严,没有运气:http://ffio.it/user2243116.html – MultiformeIngegno 2013-04-28 13:56:12
你能告诉你你期待什么,你得到什么? – user2243116 2013-04-28 13:59:13
它应该像这样工作(键入罗马地址并按下“Go”按钮):http://goo.gl/wr3qi – MultiformeIngegno 2013-04-28 14:01:24
我找到了解决办法:)
<form onsubmit="calcRoute(); return false">
<input type="text" id="start" name="start">
<input type="submit" value="Vai">
</form>
为什么你不使用提交按钮,为什么你使用内嵌JavaScript? – PeeHaa 2013-04-28 13:33:38
呃,如果我把它改成''仍然不起作用。内联js是什么意思? :) – MultiformeIngegno 2013-04-28 13:36:45
他的意思是'onclick =“calcRoute();”'。由于与内联样式类似的原因,这是不被赞赏的。我们通过在窗口加载中绑定事件处理程序来避免内联javascript,或者如果使用jquery,文档就绪。但我们应该在这里回答你的问题,而不是我们在这里批评你的代码风格。 – Stoutie 2014-08-08 18:34:38