在 keyup 函数运行时保持 iOS 键盘打开
Keep iOS keyboard open while keyup function runs
这个问题是关于 iOS 网络开发的。
我有一个函数,由 "Search" 输入字段中的 keyup 侦听器触发。
它在台式机、笔记本电脑、Samsung Galaxy 手机和 Sony Xperia 上完美运行,但在 iPhone 或 iPad 上运行不佳。每当函数运行时,软键盘都会关闭。我想到的一个可能的解决方法是在输入 id='newsearch'
上重新 focus
作为函数的最后一行,但这似乎没有做任何事情。
有谁知道如何在 ios 中的 运行 功能时保持键盘打开?
请参阅下面的 3 个代码片段:
触发函数的行:
<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>
函数本身: 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();
函数引用的php文件: newsearch.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>";
}
尝试将焦点设置在字段上。
$('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();
});
}
});
我不敢相信我花了这么长时间才意识到这一点。 newsearch.php 中的最后一个 'echo' 包含添加按钮上的 autofocus
属性....我删除了它,现在可以使用了。
这个问题是关于 iOS 网络开发的。
我有一个函数,由 "Search" 输入字段中的 keyup 侦听器触发。
它在台式机、笔记本电脑、Samsung Galaxy 手机和 Sony Xperia 上完美运行,但在 iPhone 或 iPad 上运行不佳。每当函数运行时,软键盘都会关闭。我想到的一个可能的解决方法是在输入 id='newsearch'
上重新 focus
作为函数的最后一行,但这似乎没有做任何事情。
有谁知道如何在 ios 中的 运行 功能时保持键盘打开?
请参阅下面的 3 个代码片段:
触发函数的行:
<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>
函数本身: 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();
函数引用的php文件: newsearch.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>";
}
尝试将焦点设置在字段上。
$('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();
});
}
});
我不敢相信我花了这么长时间才意识到这一点。 newsearch.php 中的最后一个 'echo' 包含添加按钮上的 autofocus
属性....我删除了它,现在可以使用了。