From SJAX to AJAX
From SJAX to AJAX
我希望在 AJAX 中转换脚本的一部分,以便它不会像同步 JAX 那样冻结页面。我想要实现的是,在将密码发送到服务器之前验证密码是否正常。如果不是,密码字段将摇晃并显示错误消息。
<script type="text/javascript">
var ok = null;
var lastChanged = "";
$(document).ready(function() {
$.localScroll({duration:800});
<?php if ($wrong_pass): ?>
$("form#password_box").velocity("callout.shake");
<?php endif; ?>
$("[name=pass]").on("keyup change propertychange", onPassChange);
});
</script>
<script type="text/javascript">
function onPassChange(e) {
// get keycode of current keypress event
var code = (e.keyCode || e.which);
// do nothing if it's the enter key
if(code != 13) {
var init_val = $("#password_field").val();
$.ajax({type: "POST", url:"check_password_AJAX", data:{pass:$("#password_field").val()}, dataType:"text", success: function (data) {
if (data && $("#password_field").val() == init_val) {
if (data == "TRUE") {
ok = true;
lastChanged = init_val;
}else {
ok = false;
lastChanged = init_val;
}
}
}});
}
}
</script>
<script type="text/javascript">
function validateForm() {
if (ok && lastChanged == $("#password_field").val()) {
$("#incorrect").velocity("transition.fadeOut");
$("#incorrect").html("");
return true;
}else if (lastChanged != $("#password_field").val()) {
//ajax
var obj = $.ajax({type: "POST", url:"check_password_AJAX", data:{pass:$("#password_field").val()}, dataType:"text", async:false});
// Analyse
if (obj.responseText) {
if (obj.responseText == "TRUE") {
$("#incorrect").velocity("transition.fadeOut");
$("#incorrect").html("");
return true;
}else {
$("#password_container").velocity("callout.shake");
$("#incorrect").html("Mot de passe incorrect");
$("#incorrect").velocity("transition.fadeIn");
$("#password_field").val("");
return false;
}
}
}else {
$("#password_container").velocity("callout.shake");
$("#incorrect").html("Mot de passe incorrect");
$("#incorrect").velocity("transition.fadeIn");
$("#password_field").val("");
return false;
}
}
</script>
<form action="cmd" method="post" class="center" id="password_box" onsubmit="return validateForm()">
<div id="password_container">
<input type="password" name="pass" id="password_field" placeholder="Mot de passe"><br>
</div>
<input type="submit" name="submit" class="button" value="S'autentifier">
</form>
对于每次按键,我都会尝试使用 AJAX(onPassChange
函数)验证密码并将结果放入 ok
变量中。如果用户尝试在我使用 AJAX 验证表单之前提交表单,我发现唯一的解决方法是使用 SJAX。谢谢。
我想你误解了AJAX的用法。AJAX 用于执行异步 HTTP (Ajax) 请求。在客户端进行验证(我假设你的意思是正确的格式而不是正确的密码)不应该使用 AJAX 来完成。可以使用 AJAX 将用户名和密码发送到后端服务器,因为它是 HTTP 请求。如果您在用户输入文本时尝试检查正确的密码,我很想知道这种方法适合什么用例。
编辑:我做了快速简单的小提琴来演示在客户端上进行密码格式验证。请注意 onPassChange 函数中的更改,以及在 html 中添加了一个 id passwordInvalid的元素。仅当"格式"是密码时,通知才会消失 https://jsfiddle.net/032mn56t/19/
function onPassChange(e) {
// get keycode of current keypress event
var code = (e.keyCode || e.which);
console.log(code);
// do nothing if it's the enter key
if(code != 13) {
var init_val = $("#password_field").val();
//substitute the following with matching input to a regex meething your password requirements. THis is just for demonstration.
if(init_val !== "format"){
$("#passwordInvalid").show();
}else{
$("#passwordInvalid").hide();
}
}
<form action="cmd" method="post" class="center" id="password_box" onsubmit="return validateForm()">
<div id="password_container">
<input type="password" name="pass" id="password_field" placeholder="Mot de passe"><br>
</div>
<input type="submit" name="submit" class="button" value="S'autentifier">
</form>
<p id="passwordInvalid" style="display:none">
WRONG PASSWORD FORMAT
</p>
相关文章:
- jQuery AJAX write to XML
- AJAX - Javascript array to php
- Javascript AJAX call to Jquery Call
- jquery ajax post to .aspx page load - how to read variable p
- Ajax.Jquery.Post.sending data to asp
- JQuery Ajax does not response to Node JS
- jQuery to Javascript Conversion for AJAX request
- Rails 3.2 Coffeescript to Refresh Div using Ajax - 重新加载整个页面
- Ajax Call To Web API
- jquery ajax how to trat callback
- Ajax to Laravel 返回 404,Responsejson 未定义
- Ajax to read PHP
- $.AJAX to $.POST
- 如何发送类似“<>"在参数中使用$.ajax-to-server
- jQuery.ajax to $http
- Post data ajax to php
- jquery.当我在PHP中使用ECHO时,ajax to PHP失败
- $.ajax to $getJSON
- Getting AJAX to Work With JavaScript
- javascript, ajax to PHP