3

我有以下格式的结构,我在 Bootstrap 模式中显示。

<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
   });
});

在 Firefox、Chrome 和 IE 中,当我在填写输入后按 Enter/Return 键时,会触发按钮单击。
但在 Safari [v4.0.3] 中,它不会触发按钮点击!相反,它似乎回发到同一页面。

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

PS:
1.我熟悉触发按钮单击Enter keypress事件的Javascript代码。只是好奇为什么上述内容仅在 Safari 中不起作用。
2.为澄清起见,当我仍在输入控件上时按 Enter 键,而不是按 Tab 先关注按钮然后按 Enter。

4

3 回答 3

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
 }
});

最好为两个输入文件编写三个侦听器,一个用于按钮,另外两个用于两个输入文件。希望这对你有帮助。我不确定这个解决方案。请在尝试后告诉我。

于 2013-08-19T05:18:52.150 回答
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>
于 2013-08-19T07:46:34.627 回答
0

而不是类属性使用 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>
于 2013-08-19T05:49:16.837 回答