2013-08-19 80 views
3

我有一个以下格式的结构,我将它显示在Bootstrap模式中。按下Enter/Return键不会触发Safari中的按钮单击

<div> 
<input type="text"/> 
<input type="text"/> 
<button class="jSomeButton" onclick="javascript: return false;"></button> 
<!--Click event handled in Javascript code--> 
</div> 

$(function(){ 
    $(".jSomeButton").on('click',function(){ 
     //Called from Firefox, Chrome and IE 
     //Not called from Safari 
    }); 
}); 

在填充输入后按下Enter/Return键时,在Firefox,Chrome和IE中触发按钮点击。
但在Safari [v4.0.3]中,它不会触发按钮单击!而是似乎回传到同一页面。

这是Safari中的一个已知问题吗?
如果是,任何解决方法?
如果不是,有人可以帮我解决根本问题吗?

P.S. :
1.我熟悉用于触发按钮的Javascript代码,点击Enter键事件。只是好奇,为什么上述不会在Safari中工作只有
2.为了澄清,在我仍然处于输入控件上时按下Enter键,而不是按Tab键先按下按钮,然后按Enter键。

+0

你能与我们分享您的全部代码,以便我们可以帮助? –

+0

@DevangRathod:你的意思是整个加价?还有什么事情你需要知道? – Vandesh

+0

意味着你想要的结果是什么? –

回答

3

将输入字段和按钮添加到表单。

尝试使用此,但我不知道这是正确的方式来做到这一点。在这种情况下,您最好将两个js监听器函数添加到输入字段。作为

`

<div> 
    <input id="one" type="text"/> 
    <input id="two" type="text"/> 
    <button class="jSomeButton" onclick="javascript: return false;">    </button> 
    <!--Click event handled in Javascript code--> 
    </div> 



$('#one').keypress(function(e){ 
if(e.which == 13) { 
//call your code 

} 
}); 

$('#two').keypress(function(e){ 
if(e.which == 13) { 
///call your code 
} 
}); 

更好您写三篇听众一个其他两个用于两个输入文件按钮。希望这个不好的人帮助你。我不确定这个解决方案。请尝试后告诉我。

+0

仍然无法在Safari v4.0.3。 – Vandesh

+0

我已经更新了答案,请尝试一下。 – sarsarahman

+0

看起来不是一个非常干净的解决方案。 – Vandesh

0

来代替class属性使用ID属性onclick事件,

<div> 
<input type="text"/> 
<input type="text"/> 
<button class="jSomeButton" id="jSomeButton" onclick="javascript: return false;"></button> 
<!--Click event handled in Javascript code--> 
</div> 


$(function(){ 
    $("#jSomeButton").on('click',function(){ 
     //Called from Firefox, Chrome and IE 
     //Not called from Safari 
    }); 
}); 

,如果你不希望添加ID可以delegate事件到document这样的事件将在DOM已定义的类工作。

<script type="text/javascript"> 
$(function(){ 
    $(document).on('click', ".jSomeButton" ,function(){ 
     alert('works'); 
    }); 
}); 
</script> 
+0

那么这将与Safari一起使用?请参考吗? – Vandesh

+0

@Vandesh是的,我检查了它的工作条件。请参阅编辑,这将使点更清晰。 –

+0

@Vandesh你检查了吗? –

0

@Vandesh,

,张贴在评论,我建议你把一个表单标签在你的整个表格。 看看这个JSFiddle更多的想法。

http://jsfiddle.net/JUryD/

我想这在Safari,Chrome浏览器,IE6 +,Opera和Firefox 22+

让我知道,如果你面对任何其他麻烦。

下面是代码:

<div> 
<form>    
    <input type="text"/> 
    <input type="text"/> 
    <button class="jSomeButton" onclick="javascript: return false;">Send</button> 
</form> 
</div> 
+0

在Safari v4.0.3中检查了小提琴。不起作用。你试过的版本是什么? – Vandesh

+0

我正在使用v5.0.1 –