Jquery mobile jQuery Mobile:注入的内容出现后立即消失
我有一个使用jQuery Mobile的登录页面,其中包含以下代码:Jquery mobile jQuery Mobile:注入的内容出现后立即消失,jquery-mobile,code-injection,Jquery Mobile,Code Injection,我有一个使用jQuery Mobile的登录页面,其中包含以下代码: <div id="loginPage" data-role="page" data-theme="a"> <div data-role="content"> <div id="alerts"></div> <form id="login-form"> <input type="text" id="use
<div id="loginPage" data-role="page" data-theme="a">
<div data-role="content">
<div id="alerts"></div>
<form id="login-form">
<input type="text" id="username" name="username" value="" placeholder="username or email" />
<input type="password" id="password" name="password" value="" placeholder="password" />
<button id="login-button" onClick="userLogin()">Login</button>
</form>
</div><!-- /content -->
</div><!-- /page -->
我还尝试了使用.append()
而不是.html()
。两者的结果相同。我已经注释掉了我的testalert()
,当其中一个字段留空时,它就会工作
注入内容后,如何确保内容保留在页面上?
感谢您提供的任何帮助或见解-标记
根据Jasper的请求,以下是单击“登录”按钮时执行的所有javascript:
function userLogin() {
var username = $("#username").val();
var password = $("#password").val();
if (username.length == 0 || password.length == 0) {
$('#alerts').append('Please enter your username or email and your password.').trigger('create');
}
else {
$.post("services/user-status.php", { type: 'login', username: username, password: password },
function(data) {
var response = data.item;
console.log(response);
if (response.loggedIn == false) {
$('#alerts').html('The username/email and password you used did not work. Please try again.').trigger('create');
}
else {
localStorage.userID = response.userID;
localStorage.username = response.username;
localStorage.userStatus = 'loggedIn';
$.mobile.changePage('profile.html');
}
},'json');
}
}
看起来您需要停止为按钮触发的
单击
事件的传播。您可以通过在单击事件处理程序中返回false
来执行此操作:
HTML--
下面是一个演示:
另外,由于您使用的是jQuery,因此可以像这样绑定到
元素:
$('#login-button').bind('click', userLogin);
这与将onClick=“return userLogin()”
作为按钮的属性相同,但允许您删除内联JS
这里有一个演示:您可以发布当您单击登录
按钮时运行的所有代码吗?另外,什么是.trigger('create')
(您正在尝试初始化哪个小部件)?下面是一个JSFIDLE,显示您发布的代码是有效的:。@Jasper添加了所有代码above@Jasper我删除了.trigger('create')
,因为它只是一个没有任何小部件的div,但它仍然在为我出现然后消失。@Jasper感谢您的帮助!我看到一切都在JSFIDLE上运行,但在我的项目中,它的行为仍然是一样的。我已经用
的实际代码以及javascript文件中与此页面相关的一些其他代码更新了我的问题。如有任何其他想法或见解,将不胜感激!这对我有用!我使用了你的第二个建议:$('login button').bind('click',userLogin)
并将返回false
添加到我的函数中。非常感谢你的帮助!
<button id="login-button" onClick="return userLogin()">Login</button>
function userLogin() {
...
return false;
}
$('#login-button').bind('click', userLogin);