每当登录失败时,我都会尝试在登录表单上使用“摇晃”效果。问题是我无法<form>
使用 Jquery 的 .attr() 方法获取属性(类型、方法等),因为它总是返回未定义的。有趣的是,<form>
每次最后都会摇晃。
HTML 表格
<form name="loginForm" id="loginForm" method="post" action="http://127.0.0.1/appnut/login">
<table>
<tr>
<td><label>Usuario:</label> </td>
<td><input name="username" type="text" size="32" maxlength="32" /></td>
</tr>
<tr>
<td><label>Password:</label> </td>
<td><input name="password" type="password" size="32" maxlength="32" /></td>
</tr>
</table>
<input type="submit" value="Iniciar Sesion" />
</form>
Javascript:
<script type="text/javascript"
src="public/js/jquery.js"></script>
<script type="text/javascript"
src="public/js/jquery_effects.js"></script>
<script type="text/javascript"
src="public/js/jquery_shake.js"></script>
<script>
$(document).ready(function() {
var attempts = 0; // number of Login attempts
var initialShakes = 3; // number of shakes on first failed attempt
var maxShakes = 10; // maximum number of shakes
// Login form submit event
$("#loginForm").submit(function() {
var isLoginValid = false;
var form = $("#loginForm");
$.ajax(
{ type: form.attr("type"),
url:form.attr("action"),
//******THESE TWO WILL RETURN UNDEFINED AND
//******THE AJAX CALL WILL FAIL
data:$(form).serialize(),
success: function(data){
alert(data);
isLoginValid=TRUE;
}
}
);
if (isLoginValid)
{
alert("true");
// Your code for valid login goes here.......
}
else
{
alert("false");
// Shake the form because Login is not valid
shakeLoginForm();
attempts++;
}
return false;
});
function shakeLoginForm() {
// Determine how many times the form will shake.
// Initially, it will start from the value of initialShakes,
// then increase by 1 on every failed attempt.
// The following assures that the number
// of shakes will not exceed the specified maximum.
var shakeTimes = Math.min(initialShakes + attempts, maxShakes);
// The single line code to shake the form.
$("#loginForm").effect("shake", { times: (shakeTimes) });
}
});
</script>`