我在一页中有两个表单,注册和登录。如果用户尝试在“register_username”字段中输入用户名,则 on-blur、ajax 检查该用户名是否已被占用。一切正常。但我发现,如果已经进行了此ajax调用,然后您单击登录表单上的提交,它会重定向到php-ajax页面而不是form-process php页面。
我使用 Code-Ignitier 作为 PHP 框架,使用 JQuery 作为 JavaScript 库,仅此而已。如果我要求的话,我会尽力提供任何其他信息。非常感谢。
编辑: //Javascript代码:
$('#register_username').live('blur',function() {
$.post('ajax/username_taken', {'register_username':$(this).val() },
function(result) {
if(result) {
$('#register_username').addClass('error');
}
else {
$('#register_username').removeClass('error');
}
});
}
//PHP代码
echo form_open('form/login',$form_attr);
echo ....
echo form_submit($submit_attr);
echo form_close();
echo form_open('form/register',$form_attr);
echo ....
echo form_submit($submit_attr);
echo form_close();
注意: 这都是简化的,表单实际上位于不同的 View 上,只有寄存器有一个 Controller
最佳答案
我只是盲目猜测,因为你没有提供太多信息。您的 JavaScript 似乎覆盖了提交按钮的点击事件,因此请尝试将其添加到您的 function(result)
中,看看是否有任何变化:
$('submit_button_selector').unbind();
当然,用按钮选择器更改 $('XXX') 部分,通常应该像 $('#my_form).find(':submit')
这确实是一个盲注,更多信息会有很大帮助。
关于PHP、JQuery 表单提交重定向到另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977718/