Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript验证PHP表单_Javascript_Php_Forms_Validation - Fatal编程技术网

使用javascript验证PHP表单

使用javascript验证PHP表单,javascript,php,forms,validation,Javascript,Php,Forms,Validation,我正在编写一个PHP脚本,用Javascript实践PHP表单验证。 我所期望的是通过onsubmit属性中指定的函数validate()验证表单,但是我被重定向到操作属性中指定的页面adduser.php 我不知道我错过了什么。任何帮助都将受到欢迎 函数验证(表单){ 警报(“内部验证表单”) 返回错误 } 。注册{ 边框:1px实心#999; 字体:普通14px直升机; 颜色:#444; } 报名表 名字 姓 用户名 密码 年龄 电子邮件 有几件事: 您可能缺少一个this.preven

我正在编写一个PHP脚本,用Javascript实践PHP表单验证。 我所期望的是通过
onsubmit
属性中指定的函数
validate()
验证表单,但是我被重定向到操作属性中指定的页面
adduser.php

我不知道我错过了什么。任何帮助都将受到欢迎

函数验证(表单){
警报(“内部验证表单”)
返回错误
}
。注册{
边框:1px实心#999;
字体:普通14px直升机;
颜色:#444;
}

报名表
名字
姓
用户名
密码
年龄
电子邮件
有几件事:

您可能缺少一个
this.preventDefault()
,因为默认操作是实际提交表单


您想要完成的是所谓的“客户端验证”,虽然有用,但不应取代服务器端(PHP)验证,因为您永远不能信任来自客户端的输入。

这种行为是意料之中的。单击“提交”按钮时,将执行
验证
功能,然后执行重定向到指定
操作
的默认行为


为了执行客户端验证,您需要通过添加
form.preventDefault()
来防止这种默认行为。之后,执行验证并通过添加
window.location.href=“adduser.php”
自己重定向

没有PHP表单这样的东西。你的意思是HTML表单吗?你在浏览器的开发者控制台中检查过JS错误了吗?你的代码按照这里创建的代码段的设计工作更好的方法是使用
document.querySelector(“表单”).addEventListener(“提交”,函数(e){if(someErrorInputError){alert(“你需要做…”);e.preventDefault();})
而不是内联onsubmit@Cid好的HTML表单,我知道你理解我的问题。只是强调一下,我处于PHP的环境中,代码是有效的。
return false
return validate(this)
有效地完成了客户的工作,代码正常工作。事实上,错误是由validate函数的原始内容引起的。validate函数调用其他六个函数,其中一个函数出现错误。我纠正它。它运行良好,代码运行正常。
返回false
返回验证(this)
在客户机上执行此任务。验证函数不需要重定向,除非被脚本抓取,否则不会有值。更好的代码当然是将onsubmit移动到外部事件处理程序中,并在检测到错误时使用preventDefault。我看不到错误。唯一没有意义的是你在“onsubmit”属性上有返回。要测试html、J和css,最好将其放在JSFIDLE上并共享链接。没有必要,它不使用
form.preventDefault()