Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Jquery 在nyroModal模式窗口中使用ajax验证和javascript提交_Jquery_Ajax_Validation_Modal Dialog_Nyromodal - Fatal编程技术网

Jquery 在nyroModal模式窗口中使用ajax验证和javascript提交

Jquery 在nyroModal模式窗口中使用ajax验证和javascript提交,jquery,ajax,validation,modal-dialog,nyromodal,Jquery,Ajax,Validation,Modal Dialog,Nyromodal,我有一个表单(signup.php),当我单击按钮时,它会在nyroModal窗口中弹出: <input value="Edit" class="nyroModal" type="button" href="signup.php"> 在提交表单之前,我想使用某种形式的AJAX验证(例如,检查用户名是否被使用) 我想到了以下几点:当用户单击“提交”按钮时。它使用onClick调用javascript函数,将所需字段发送到PHP脚本,该脚本返回字段是否有效。然后,如果该字段无效,它

我有一个表单(signup.php),当我单击按钮时,它会在nyroModal窗口中弹出:

<input value="Edit" class="nyroModal" type="button" href="signup.php">

在提交表单之前,我想使用某种形式的AJAX验证(例如,检查用户名是否被使用)

我想到了以下几点:当用户单击“提交”按钮时。它使用
onClick
调用javascript函数,将所需字段发送到PHP脚本,该脚本返回字段是否有效。然后,如果该字段无效,它会通知用户,但当该字段有效时,它会通过类似
$('#formid').submit()的方式提交表单。理论上很简单

但是

问题是,当nyroModel从URL获取新表单,并在DOM中创建包含其内容的div时,Firefox会完全忽略任何
标记。使用Firebug,我可以看到它实际上获得了带有响应的
标记,但Firefox忽略了它们。另外,我不能在调用模型的页面上创建jQuery函数,因为创建文档时,表单在DOM中还不存在


有什么办法解决这个问题吗?

您可以使用以下方法:

onClick='javascript: return myValidationFuncion()
函数将检查该值是否有效, i、 e.在那里调用您的web服务。 如果值无效,只需返回false即可停止执行


K

您可以使用以下内容:

onClick='javascript: return myValidationFuncion()
函数将检查该值是否有效, i、 e.在那里调用您的web服务。 如果值无效,只需返回false即可停止执行


K

尝试向表单添加提交处理程序:

onClick='return frmSubmit()'
在这个处理程序中,首先序列化表单的数据,并将其提交给验证脚本。发出请求后,请确保
返回false
,因为它是异步执行的。在响应回调中,您实现以下操作:如果响应指示输入有效,则使用
.submit()
-方法以编程方式提交表单。但是,如果响应表明出了问题(您必须以JSON格式提供反馈),请在表单中附加一些建设性的反馈,供用户阅读

不要忘记捕捉按键事件,并防止在按下Enter键时提交表单,因为它将绕过验证功能


而且,嗯,有一个建议:最好从客户端开始进行所有验证,这通常就足够了。您可能听说可以绕过客户端验证,因此仍然需要进行服务器端检查。然而,我总是觉得,如果用户决定严重干扰系统,那么就没有必要提供建设性的反馈。一条简单的指示失败的消息就足够了。因此,首先用纯Javascript检查输入。如果出现问题,提供反馈。但是,如果服务器接收到无效输入(这意味着客户端验证已被绕过),只需通知用户他失败。

尝试向表单添加提交处理程序:

onClick='return frmSubmit()'
在这个处理程序中,首先序列化表单的数据,并将其提交给验证脚本。发出请求后,请确保
返回false
,因为它是异步执行的。在响应回调中,您实现以下操作:如果响应指示输入有效,则使用
.submit()
-方法以编程方式提交表单。但是,如果响应表明出了问题(您必须以JSON格式提供反馈),请在表单中附加一些建设性的反馈,供用户阅读

不要忘记捕捉按键事件,并防止在按下Enter键时提交表单,因为它将绕过验证功能


而且,嗯,有一个建议:最好从客户端开始进行所有验证,这通常就足够了。您可能听说可以绕过客户端验证,因此仍然需要进行服务器端检查。然而,我总是觉得,如果用户决定严重干扰系统,那么就没有必要提供建设性的反馈。一条简单的指示失败的消息就足够了。因此,首先用纯Javascript检查输入。如果出现问题,提供反馈。但是,如果服务器接收到无效输入(这意味着客户端验证已被绕过),只需通知用户他失败。

谢谢!客户端验证的问题是,它无法检查数据库中是否存在用户:)我现在已经让它工作了,但我仍然不明白为什么Firefox(还没有在其他浏览器上测试过,但我怀疑会发生同样的情况)不喜欢向DOM添加标记/我不认为这会发生。。。FF应该解析并立即执行DOM新添加的脚本标记。你能提供一些细节吗?也许这是一个小陷阱;-)谢谢客户端验证的问题是,它无法检查数据库中是否存在用户:)我现在已经让它工作了,但我仍然不明白为什么Firefox(还没有在其他浏览器上测试过,但我怀疑会发生同样的情况)不喜欢向DOM添加标记/我不认为这会发生。。。FF应该解析并立即执行DOM新添加的脚本标记。你能提供一些细节吗?也许这是一个小陷阱;-)谢谢,那个回报救了我的命谢谢,那个回报救了我的命