为什么find('input:focus')不能在safari中工作

时间:2016-04-14 07:44:22

标签: javascript jquery safari

我有以下脚本在所有浏览器中工作但在Safari中没有, 有人知道这种行为的原因是什么?

$(function() {

  $('form').on('submit', function(e) {
    e.preventDefault();
    // alert($(this).serialize());
    alert($(this).find('input:focus').attr('name'));
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="./index.php" method="post" accept-charset="utf-8">
  <input type="hidden" name="foo" value="bar">
  <input type="submit" name="foo[bar]" value="Senden">
</form>

1 个答案:

答案 0 :(得分:1)

如果您使用Tab键导航到输入并按Enter键,则它在Safari中可以正常工作。

在触发提交事件之前,单击该浏览器中的提交按钮似乎会丢弃焦点。

如果要确定单击了哪个提交按钮,请使用单击事件处理程序。

if(!empty($_POST['id'])) {
  foreach($_POST['id'] as $k=>$v) {

    if(!empty($v)){      
       $id = $v;

       $sel = mysql_query("select * from $from where id = '$id' limit 1 ") or die(mysql_error());

       while($row = mysql_fetch_array($sel)){
           $preview = $row['preview'];
           $text = $row['text'];
           $title = $row['title'];
           $images = $row['images'];
       }

       $ins = mysql_query("insert into $room (id, preview, text, title, images) values (' ', '$preview', '$text', '$title', '$images') ") or die(mysql_error());



    }
  }

header("Location:admin.php");
}
$(function() {

  var $last_clicked_submit = null;

  $('form').on('click', ":submit", function(e) {
    $last_clicked_submit = $(this);
  });


  $('form').on('submit', function(e) {
    e.preventDefault();
    // alert($(this).serialize());
    alert($last_clicked_submit.attr('name'));
  });

});