我有我的jQuery輸入密鑰的問題。對於表單登錄回車鍵是工作物品,但對於表單重置密碼,回車鍵不工作,但點擊它即可。jQuery輸入密鑰不能爲其他形式的工作
不工作意味着:如果我按回車鍵,它將重定向到操作頁面,而無需在JS中進行任何驗證。
現在我想設置表單重置密碼的回車鍵。
這是到目前爲止我的代碼:
JS
$(document).ready(function()
{
$(document).bind('keypress', function(e)
{
if (e.keyCode == 13) {
$('#button_sign_in').trigger('click');
}
});
$('#button_sign_in').click(function()
{
if ($("#username").val().length == 0)
{
$('#button_sign_in').attr("disabled", false);
$('#username').focus();
}
else if ($("#password").val().length == 0)
{
$('#button_sign_in').attr("disabled", false);
$('#password').focus();
}
else if ($("#username").val().length == 0 && $("#password").val().length == 0)
{
$('#button_sign_in').attr("disabled", false);
$('#username').focus();
}
else
{
$.ajax
({
url: "login",
type: "post",
data: $('#login_form').serialize(),
dataType:'json',
success: function (data)
{
if (data.status=='SUCCESS')
{
window.location='home.php';
}
else
{
$('#button_sign_in').shake(4,6,700,'#CC2222');
$('#username').focus();
$('#password').val("");
$('#button_sign_in').attr("disabled", false);
$("#info").text("Wrong username or password.");
}
},
error: function (e) {
console.log('error:'+e);
}
});
}
});
$(document).bind('keypress', function(e)
{
if (e.keyCode == 13) {
$('#button_reset').trigger('click');
}
});
$('#button_reset').click(function()
{
if ($("#email").val().length == 0)
{
$('#button_reset').attr("disabled", false);
$('#email').focus();
$("#info2").text("Email is required.");
$('#button_reset').shake(4,6,700,'#CC2222');
}
else
{
$.ajax
({
url: "check_email",
type: "post",
data: $('#reset_form').serialize(),
dataType:'json',
success: function (data)
{
if (data.status=='FOUND')
{
$("#info2").html('<span class="success">Password reset instructions has sent to your email.</span>');
$('#email').val("");
$('#email').focus();
}
else
{
$('#button_reset').shake(4,6,700,'#CC2222');
$('#email').focus();
$('#button_reset').attr("disabled", false);
$("#info2").text("Email is invalid.");
}
},
error: function (e) {
console.log('error:'+e);
}
});
}
});
});
像這樣的登錄表單的HTML代碼:
<form id="login_form">
<div id="info"></div>
<table>
<td><input type="text" name="username" class="input" id="username" placeholder="Username or email"/></td>
<tr>
<td><input type="password" name="password" class="input" id="password" placeholder="Password"/></td>
<tr>
<td><input type="button" id="button_sign_in" class="button_sign_in" value="Sign in"/></td>
<tr>
<td>
<span class="keep_logged_in"><input type="checkbox"> Keep me logged in</span>
</td>
</table>
</form>
和形式復位這樣的:
<form id="reset_form" class="collapse">
<div id="info2" class="info2"></div>
<table class="t_info">
<td><input type="text" name="email" class="input" id="email" placeholder="Email"/></td>
<tr>
<td><input type="button" id="button_reset" class="button_reset" value="Submit"/></td>
</table>
</form>
有什麼建議嗎?也許我的代碼有問題?
要綁定兩個'keypress'處理程序到「文檔」,並且不關注哪個字段他用戶在輸入時正在輸入。 – nnnnnn
嗯..任何例子呢? :) –
與你的JS問題無關(已經有一些很好的答案),但你的HTML也可以做一些更新。例如,你需要確保你的TD標籤包裹着相應的TR標籤: