Javascript 使用jQuery进行表单验证-奇怪的重定向
好的,我尝试用jQuery进行表单验证。不知道为什么,但当您单击“提交”时,它会将您重定向到您所在的页面 表单操作是空的,我在标题中包含了javascript文件 我将把代码放在下面。如果你发现有什么问题,请告诉我。我希望它使用jQuery进行验证,然后将您发送到一个php文件,其中包含方法POST中的这些值 Register.js:Javascript 使用jQuery进行表单验证-奇怪的重定向,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,好的,我尝试用jQuery进行表单验证。不知道为什么,但当您单击“提交”时,它会将您重定向到您所在的页面 表单操作是空的,我在标题中包含了javascript文件 我将把代码放在下面。如果你发现有什么问题,请告诉我。我希望它使用jQuery进行验证,然后将您发送到一个php文件,其中包含方法POST中的这些值 Register.js: $(document).ready(function() { $('button[name=regsubmit]').click(function(){
$(document).ready(function() {
$('button[name=regsubmit]').click(function(){
var fname = $('input[name=regfirstname');
var lname = $('input[name=reglastnaame');
var email = $('input[name=regemail');
var password = $('input[name=regpassword');
var repeatpassword = $('input[name=regrepeatpassword');
var username = $('input[name=regusername');
var atpos = email.indexOf("@");
var dotpos = email.indexOf(".");
if (fname==null || fname=="")
{
alert('First name must be filled out!');
return false;
}
if (lname==null || lname=="")
{
alert('Last name must be filled out!');
return false;
}
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
{
alert('Not a valid e-mail address!');
return false;
}
if (username==null || username=="")
{
alert("Username field must be filled out!");
return false;
}
if (password==null || password=="")
{
alert("Subject field must be filled out!");
return false;
}
if (repeatpassword==null || repeatpassword=="")
{
alert("Repeat password field must be filled out!");
return false;
}
if (password != repeatpassword)
{
alert("The passwords do not match!");
return false;
}
else
{
location.href="register.php";
}
});
});
$(文档).ready(函数(){
$('button[name=regsubmit]')。单击(函数(){
var fname=$('input[name=regfirstname');
var lname=$('input[name=reglastname');
var email=$('input[name=regemail');
var password=$('input[name=regpassword');
var repeatpassword=$('input[name=regrepeatpassword');
var username=$('input[name=regusername');
var atpos=email.indexOf(“@”);
var dotpos=email.indexOf(“.”);
如果(fname==null | | fname==“”)
{
警报('必须填写名字!');
返回false;
}
如果(lname==null | | lname==“”)
{
警报('必须填写姓氏!');
返回false;
}
如果(atpos)
防止提交时的默认操作
$('button[name=regsubmit]').click(function(e)
{
e.preventDefault();
//your code below
}
好吧,你的JS和HTML是一堆乱七八糟的东西,所以我不会全部重新创建,但基本内容: 为您的表单提供一个ID:
<form id="SomeForm" name="register" method="POST">
这可确保正确引用按钮,防止正确提交,并仅在有效时提交。如果表单操作为空,则默认行为为“提交”对于您所在的同一页面=>那么,我应该将操作设置为什么?register.js?您将表单提交到什么位置?哪个页面正在处理要发送到某个服务器的信息?php文件,但在我的javascript文件中,它也会重定向到该页面。在我的javascript文件中,当您单击提交按钮时,它会进行检查,然后它会检查字段ds进行验证,如果它们都很好,那么它会将您移动到register.php。然后我会向其中添加一个操作吗?还是像这样保留它,因为它重定向到register.php?因为当我这样添加它时,它仍然只是刷新页面。您确实需要将该操作添加为register.js页面,那么它如何重定向到register.php?我尝试了with register.js,它只是重定向到register.js,其中显示了脚本的代码。您需要在操作中指定register.php,即
action=“register.php”
。这与我提到的更改相结合,将正确验证和提交。不起作用,它直接将我发送到register.php,不确定原因
<form id="SomeForm" name="register" method="POST">
// reference the button by the ID you gave it
$('#regsubmit').click(function(e){
// stop original submission
e.preventDefault();
// all your checking stuff here, but if true, then:
document.getElementById('SomeForm').submit();
});