I have a web app where I have a simple login box. There is no form to submit and the login procedure is implemented via jQuery AJAX.
In such a scenario, how can I make the web browser display the dialog:
"Do you want the browser to remember the password?"
NOTE: I'm looking for a solution that works at least in the most recent version of all major browsers.
EDIT: I do use cookies for remembering user login. The problem is that browsers don't offer to remember the password.
Here is the HTML:
<div class="window loginWindow sn-login">
<div>
<input type="text" id="UserName" placeholder='Username' />
</div>
<div>
<input type="password" id="Password" placeholder='Password' />
</div>
<div>
<div>
<input type="checkbox" id="RememberMe" />
<label for="RememberMe">Remember my login</label>
</div>
<div>
<button class="loginSubmit">Login</button>
</div>
</div>
</div>
Here is the JavaScript:
var $userName = $("#UserName"),
$rememberMe = $("#RememberMe"),
$password = $("#Password");
var name = $userName.val(), pw = $password.val();
$.ajax({
type: "POST",
url: "/UserActions/LogIn",
dataType: "json",
data: { password: pw, email: name },
success: function (data) {
if (data.success) {
if ($rememberMe.is(":checked")) {
// Omitted for brevity
}
window.location.reload();
}
else {
// Omitted for brevity
}
}
});
Just create a form element as a wrapper for your controls and use the form's submit handler to perform a ajax call as you are doing.
<form id="myform">
<div class="window loginWindow sn-login">
<div>
<input type="text" id="UserName" placeholder='Username' />
</div>
<div>
<input type="password" id="Password" placeholder='Password' />
</div>
<div>
<div>
<input type="checkbox" id="RememberMe" />
<label for="RememberMe">Remember my login</label>
</div>
<div>
<button class="loginSubmit">Login</button>
</div>
</div>
</div>
</form>
Change your script like this:
$('.loginSubmit').on('click', function(){
$("#myform").submit(function(){
var $userName = $("#UserName"),
$rememberMe = $("#RememberMe"),
$password = $("#Password");
var name = $userName.val(), pw = $password.val();
$.ajax({
type: "POST",
url: "/UserActions/LogIn",
dataType: "json",
data: { password: pw, email: name },
success: function (data) {
if (data.success) {
if ($rememberMe.is(":checked")) {
// Omitted for brevity
}
window.location.reload();
}
else {
// Omitted for brevity
}
}
});
return false;
});
});