我在登录表单弹出模式<button type="submit" class="btn btn-primary btn-lg btn-block" onclick="checkall();">Login</button>
function checkall()
{
var name=document.getElementById( "login_username" ).value;
var pass=document.getElementById( "login_password" ).value;
var testing = true;
if(name)
{
$.ajax({
type: 'post',
url: 'checkuser.php',
data: {
user_name:name,
user_pass:pass,
},
success: function (response) {
$( '#name_status' ).html(response);
if(response=="OK")
{
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
var base2 = baseUrl + "/instructor/index.php";
window.location = base2;
}
else
{
$('#text-login-msg').text("Testing");
testing = false;
}
},
error: function() {
$( '#name_status' ).html("");
return false;
}
});
return testing;
}
}
一切正常我只想停止表单模型刷新页面并在屏幕上显示错误,如果细节不匹配。
`
else
{
$('#text-login-msg').text("Testing");
testing = false;
}
`
它应该显示测试并保持弹出窗口打开。 但这不起作用。我也尝试过返回false也是同样的问题。我知道ajax是 如果数据不匹配那么异步,那么它应该像没有刷新页面那样保持不变。
谢谢。
答案 0 :(得分:-2)
我认为你的问题是:当响应不是“OK”时如何保持弹出窗口?
<button type="button" class="btn btn-primary btn-lg btn-block" onclick="checkall(event);">Login</button>
更新checkall
功能以防止默认close
操作。
function checkall(e){
e.preventDefault();
//... rest of your codes;
}
还要注意按钮类型submit
,通常刷新页面。
按钮的类型。可能的值是:
submit:该按钮将表单数据提交给服务器。如果未指定属性,或者属性动态更改为空值或无效值,则这是默认值 重置:该按钮将所有控件重置为初始值 按钮:该按钮没有默认行为。它可以具有与元素事件关联的客户端脚本,这些事件在事件发生时触发 menu:该按钮打开一个通过其指定元素定义的弹出菜单。