的index.php
<!DOCTYPE html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$("#verifica").click(function(){
$("#risultati").html("Please wait...");
$.ajax({
type: "POST",
url: "go.php",
data: $("#ciao").serialize(),
dataType: "html",
success: function(msg)
{
$("#risultati").html(msg);
},
error: function()
{
$("#risultati").html("An error occurred.");
}
});
});
});
</script>
<form name="ciao" id="ciao" action="#">
<input type="text" id="zio" name="zio">
<input type="submit" onclick="return:false;" name="verifica" id="verifica" value="go">
</form>
<div id="risultati"></div>
</body>
go.php
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<script>
$("#zio").focus();
</script>
</body>
当表单通过jquery完全提交给go.php时,将#zio聚焦。
在提交表单数据时,#zio没有聚焦。
如何修复我的代码?
答案 0 :(得分:0)
由于您的Ajax代码知道所有输入(同一页面),为什么不这样做:
success: function(msg)
{
$("#risultati").html(msg);
$("#zio").focus();
},
您当前的版本有一个子页面,知道父页面(分离不良)。
答案 1 :(得分:0)
完成处理POST数据后,您无需在go.php中显示html代码
试试这个
$(document).ready(function() {
$("#verifica").click(function(){
$("#risultati").html("Please wait...");
$.ajax({
type: "POST",
url: "go.php",
data: $("#ciao").serialize(),
//dataType: "html",
success: function(msg)
{
$("#risultati").html(msg);
$("#zio").focus();
},
error: function()
{
$("#risultati").html("An error occurred.");
}
});
});
});
答案 2 :(得分:0)
附加解决方案有同样的问题,无论我尝试什么,焦点()似乎都无法发挥作用。
最终证明所需要的是滚动到正确的位置: