gpt4 book ai didi

javascript - 无法使用 $_POST 将我的表单(使用 jQuery 验证)提交到同一页面

转载 作者:行者123 更新时间:2023-11-28 08:14:55 25 4
gpt4 key购买 nike

我有一个使用 jQuery system 的表单来验证输入。默认情况下,如果没有错误,就会提交。我对 JavaScript 很不好,所以我的问题是:

我该如何将其提交到同一页面并将输入放入 $_POST 中变量,以便它可以执行 PHP 代码来处理数据,同时让 jQuery 验证工作?

我注意到的:

  • 提交按钮的类型必须设置为 type="button"让验证器工作
  • 将类型设置为按钮,使 <form>无法提交

用于验证输入的 PHP 代码片段(查看它是否实际发布到 $_POST 变量中):

if(isset($_POST)){
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
echo $username."<br>".$email."<br>".$password;
}

表单的脚本:

<form action="" method="post">
<table border=0 id="form" style="padding:10px;">
<tr>
<td>
Username
</td>
<td align=left>
<input name="username" type="text" size="20" jVal="{valid:function (val) { if (val.length < 3) return 'Invalid Name'; else return ''; }}">
</td>
</tr>
<tr>
<td>
Email address
</td>
<td align=left>
<input name="email" type="text" size="40" jVal="{valid:/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/, message:'Invalid Email Address'}" jValKey="{valid:/[a-zA-Z0-9._%+-@]/, cFunc:'alert', cArgs:['Email Address: '+$(this).val()]}">
</td>
</tr>
<tr>
<td>
Password
</td>
<td align=left>
<input name="password" id="password" type="password" jVal="{valid:function (val) { if (val.length < 4) return false; else return true; }, message:'Password of 4 or more characters required'}">
</td>
</tr>
<tr>
<td style="padding-right:20px;">
Verify password
</td>
<td align=left>
<input name="passwordconfirm" id="passwordVerify" type="password" jVal="{valid:function (val) { if ( val != eval('$(\'#password\').val()') ) return false; else return true; }, message:'Password and Verify Password Must Match'}">
</td>
</tr>
<tr>
<td>
<input type="hidden" name="antispam" value="banana" />
<script>
var antiSpam = function() {
if (document.getElementById("antiSpam")) {
a = document.getElementById("antiSpam");
if (isNaN(a.value) == true) {
a.value = 0;
} else {
a.value = parseInt(a.value) + 1;
}
}
setTimeout("antiSpam()", 1000);
}
antiSpam();
</script>
</td>
</tr>
<tr>
<td></td>
<td>
<input id="submitButton" type="button" value="Click here to register!" onClick="if ( $('#form').jVal({style:'blank',padding:8,border:0,wrap:false}) ){ this.form.submit;}">
</td>
</tr>
</table>
</form>

If needed, the files corresponding to the jVal system (validation) can be found here, but they are most likely not needed.

先谢谢了

PS。请不要说“缩小问题范围”,当我缩小范围并发布具体代码片段时,我被告知要发布整个代码,所以就在这里。

最佳答案

  1. 使用 HTML5 验证和 <input>类型。例如,您的浏览器可以比您更好地验证电子邮件地址。

  2. 放弃垃圾邮件防护;它将阻止实际用户使用您的页面。使用reCAPTCHA .

  3. 不要使用表格进行布局。请?至少,使用 CSS 而不是 align属性。

  4. 不要假设每个人的名字都至少有三个字符长。

<form method="POST">
<table border="0" id="form" style="padding: 10px;">
<tr>
<td>
Username
</td>
<td align="left">
<input name="username" type="text" size="20" required />
</td>
</tr>
<tr>
<td>
Email address
</td>
<td align="left">
<input name="email" type="email" size="40" required />
</td>
</tr>
<tr>
<td>
Password
</td>
<td align="left">
<input name="password" id="password" type="password" required />
</td>
</tr>
<tr>
<td style="padding-right:20px;">
Verify password
</td>
<td align="left">
<input name="passwordconfirm" id="password-confirm" type="password" required />
</td>
</tr>
<tr>
<td></td>
<td>
<button>Click here to register!</button>
</td>
</tr>
</table>
</form>

关于javascript - 无法使用 $_POST 将我的表单(使用 jQuery 验证)提交到同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com