我只是在为 Phonegap 应用程序(jQuery Mobile)开发一个简单的登录屏幕。
一切正常,用户甚至可以通过单击复选框来保存登录数据(我使用 localStorage。)现在,当用户单击注销按钮时,我想使用未选中的复选框将用户重定向到登录屏幕。重定向工作正常,密码被删除。唯一的问题是复选框,它一直被选中,即使我告诉它不被选中。
这是我的代码:
html
...
<form id="login">
<input type="text" placeholder="Username" id="usr" /><br />
<input type="password" placeholder="Password" id="pwd" /><br />
<input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
<label for="checkbox-1">Stay logged in</label>
<a data-role="button" data-transition="none" id="logindata" onclick="LogIn()">Login</a>
</form>
...
javascript
//checking if there is already a saved password. if yes, setting values
function checkStorage() {
if ( localStorage["pw"] != null){
document.getElementById("usr").value = localStorage["name"];
document.getElementById("pwd").value = localStorage["pw"];
$("#checkbox-1").prop("checked", true);
}
}
function LogIn() {
var usr = document.getElementById('usr').value;
var pwd = document.getElementById('pwd').value;
//always saving the name
localStorage["name"] = usr;
//if checkbox checked, save the password. if not, delete saved password
if ( $("#checkbox-1").is(":checked") ) {
localStorage["pw"] = pwd;
} else {
if (localStorage["pw"] != null){
localStorage.removeItem("pw");
}
}
$.ajax({
url: 'https://myurl',
async: false,
username: usr,
password: pwd,
success: function () {
$.mobile.changePage("#success");
},
error: function(){
alert("Please enter correct username and password!");
}
});
}
function LogOut() {
var usr = "";
var pwd = "";
$.mobile.changePage("#index");
document.getElementById("usr").value = localStorage["name"];
document.getElementById("pwd").value = "";
localStorage.removeItem("pw");
//This code is not working?
$("#checkbox-1").prop("checked", false);
}
当我让这段代码工作时,我想对密码进行编码,但现在我只想让它工作。;)
我希望,有人可以帮助我吗?
编辑:
我终于知道了,这是怎么回事。我正在为这个登录表单使用 jQuery Mobile,并且必须刷新复选框!所以下面的代码现在对我有用:
$("#checkbox-1").removeProp("checked").checkboxradio("refresh");