Joh*_*n T 3 ajax wordpress jquery submit
我是Ajax和Jquery的新手,想要在登录页面上执行一些验证(使用wordpress).
我使用此代码来捕获登录表单的提交...
$("#login").submit(function (e) {
$.ajax({
type: "post",
dataType: 'json',
url: ajax_login_object.ThemeFolder + "/log-in-script.php",
data: {
'user_login': user_login,
'user_pass': user_pass,
'action': 'login'
},
success: function (data) {
if (data.succeeded == true) {
// JUST WANT TO SUBMIT THE FORM HERE
// tried return true.. no joy
// tried $("#login").submit() but just ends up with neverending loop
// tried document.href etc but lose the POST data
// tried nesting another ajax call but no joy
// ????
}
}
});
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
在我的log-in-script.php中,我检查了一些事情.例如,如果他们没有填写密码字段但他们的用户名在数据库中,我重置他们的密码.如果他们没有填写密码字段并且他们的用户名不在数据库中,那么我会注册它们.
如果他们输入了用户名和密码,我只想正常提交表单,但我正在努力解决这个问题.我确定我错过了一些非常简单的事情.
任何帮助都非常感谢.
谢谢
约翰 ;-)
try
$("#login")[0].submit()
Run Code Online (Sandbox Code Playgroud)
calling submit() directly on form element, avoid the call of submit event callback
DEMO: http://jsfiddle.net/5Xv5f/1/
UPDATE:
对于大多数浏览器和所有基于Gecko的应用程序都是如此:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.submit
从基于Gecko的应用程序调用此方法时,不会触发表单的onsubmit事件处理程序(例如,onsubmit ="return false;").通常,不保证HTML用户代理可以调用它.
但是,没有W3标准的说法.
所以,如果你想100%确定,你可以这样做:
$("#login").submit(function (e) {
// submit if already checked
if($(this).attr("data-checked")) {
return true;
}
$.ajax({
type: "post",
dataType: 'json',
url: ajax_login_object.ThemeFolder + "/log-in-script.php",
data: {
'user_login': user_login,
'user_pass': user_pass,
'action': 'login'
},
success: function (data) {
if (data.succeeded == true) {
// JUST WANT TO SUBMIT THE FORM HERE
// flag as checked
$("#login").attr("data-checked","1");
// submit
$("#login").submit()
}
}
});
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6251 次 |
| 最近记录: |