2015-10-22 20 views
9

Câu hỏi này là về dev web iOS.Mở bàn phím iOS trong khi chức năng khóa phím chạy

Tôi có một chức năng được kích hoạt bởi trình nghe keyup trong trường nhập "Tìm kiếm". Nó hoạt động hoàn hảo trên máy tính để bàn, máy tính xách tay, điện thoại Samsung Galaxy và Sony Xperia nhưng không hoạt động trên iPhone hoặc iPad. Bất cứ khi nào chức năng chạy, bàn phím mềm đóng lại. Một trong những sửa chữa tiềm năng tôi nghĩ là để lại focus trên đầu vào id='newsearch' là dòng cuối cùng của chức năng, nhưng điều đó dường như không làm bất cứ điều gì.

Có ai biết cách giữ bàn phím mở trong khi chức năng đang chạy trong ios không?

Xem 3 đoạn mã dưới đây:

Các dòng mà kích hoạt các chức năng:

<tr><td colspan='3'>Search <input type='text' autofocus id='newsearch'></input></td> 

    <h2>Search Results</h2> 
    <div id="newsearch-data"> </div> 

<script src="http://code.jquery.com/jquery-1.8.0.min.js"> </script> 
<script src="addplayer.js"> </script> 

Chức năng chính: addplayer.js

$('input#newsearch').on('keyup', function(){ 
    var newsearch = $('input#newsearch').val(); 
    if ($.trim(newsearch)!= "") { 
     $.post('newsearch.php', {newsearch: newsearch}, function(data) { 
      $('div#newsearch-data').html(data); 
     }); 
    } 
}); 
      document.getElementById("newsearch").focus(); 

Các tập tin php chức năng đề cập đến: tìm kiếm tin tức. php

if (isset($_POST['newsearch']) && $_POST['newsearch'] != NULL){ 
    require 'dbconnect.php'; 

    $term = $_POST['newsearch']; 
    $terms = "%" . $term . "%"; 

    $_SESSION['players'] = array(); 

    $query = ("SELECT * FROM players WHERE Username LIKE '$terms' OR Phonenumber LIKE '$terms' OR PlayerID LIKE '$terms'"); 
    $run_query = mysqli_query($dbcon, $query); 

     echo "<table border='1px'><tr><th>Player ID</th><th>Name</th><th>Action</th></tr>"; 

      while ($dbsearch = mysqli_fetch_assoc($run_query)) 
      { 
       $dbu = $dbsearch['Username']; 
       $id = $dbsearch['PlayerID']; 
       $func = "add(" . $id . ", Brad Henry)"; 
      array_push ($_SESSION['players'],$dbsearch['PlayerID']); 
      echo "<tr><td>".$id ."</td><td>".$dbu."</td><td><input type=\"submit\" id=\"PlayerAdded".$id."\" autofocus value=\"Add\" onclick=\"add('".$id."','".$dbu."');\"></input></td></tr>"; 
      } 
+0

Bạn đang chạy phiên bản iOS nào? Hoạt động tốt cho tôi khi tôi mở trang này trong iOS 8. http://codepen.io/hampusohlsson/pen/mejMpw – hampusohlsson

+0

@hamohl Tôi đang trên ios 9, nhưng nó đã được thử nghiệm trên các thiết bị iOS khác nhau. Nó đang chạy tìm kiếm, nhưng bàn phím đóng khoảng nửa giây sau khi khóa lần đầu tiên, vì vậy khi tìm kiếm tên có từ 15 ký tự trở lên, bàn phím sẽ đóng khoảng 5-7 lần và người dùng phải bỏ chọn đầu vào tìm kiếm mỗi lần. Bạn đang sử dụng thiết bị nào? – Tunna182

+0

Tôi đang sử dụng iPhone 5S iOS8. Bạn có thể thử sử dụng Thời gian chờ để ngăn không cho gửi nhiều yêu cầu trước khi nhập xong, ít nhất là để xem nó có giúp ích hay không. Kiểm tra các bút cập nhật ở trên :) – hampusohlsson

Trả lời

0

Tôi không thể tin rằng điều này đã khiến tôi mất nhiều thời gian để nhận ra. 'Echo' cuối cùng trong newsearch.php chứa thuộc tính autofocus trên nút thêm .... Tôi đã xóa nó và bây giờ nó hoạt động.

0

Cố gắng đặt tiêu điểm trên trường.

$('input#newsearch').on('keyup', function(){ 
    var field = $(this); 
    var newsearch = field.val(); 
    if ($.trim(newsearch)!= "") { 
     $.post('newsearch.php', {newsearch: newsearch}, function(data) { 
      $('div#newsearch-data').html(data); 
      field.focus(); 
     }); 
    } 
}); 
+0

Tôi thực sự đánh giá cao đề nghị, nhưng tôi chỉ thử nghiệm nó và nó dường như không tạo sự khác biệt để trung thực. – Tunna182

Các vấn đề liên quan