我有一堆带有表单的php页面。
我有一些工作表格在我开始访问网站之前已经存在 - 它们都按预期工作,所以我使用它们来模拟我写的新文章。
我不明白的是,在旧版/工作版中,当表单提交并且未通过验证时,URL保持原样,即' /form-name.php 39;
然而,由于复制了这些内容,我的新表单会添加到' / form-name.php?action = submit'
这样的网址我在表单中使用与现有表单相同的操作:
<form id="standard" action="?action=submit" method="post" enctype="multipart/form-data">
所有php脚本的顶部通过
处理表单if(isset($_REQUEST['action'])) {
if($_REQUEST['action'] == "submit") {
我注意到现有的表单,当它们检查验证时,它们只是弹回到页面的顶部 - 而我的新表单,它们实际上刷新页面,就好像它提交,发现错误,然后重新加载页。
所以我只是想了解差异,决定每个表单在提交时的反应。
编辑:更多信息,我将添加以下包含的js函数:
$(window).load(function () {
if($("#standard").length != 0) {
$("#standard").validate();
$.metadata.setType("attr", "validate");
}
$("#standard").submit(function() {
var tmpError = false;
// Disability
if($("input[name='disability']:checked").val() =="Yes") {
if($("#disability-text").val() == "") {
$("#disability-text-error").slideDown('fast');
tmpError = true;
} else {
$("#disability-text-error").slideUp('fast');
tmpError = false;
}
}
if(tmpError) { return false; }
});
上面的.submit函数中有更多内容,但我没有看到任何字段。 例如,下面没有提到这个&#34; file&#34;整个JS中的字段:
<tr><td><div class="field"><input type="file" size="33" name="file[]" validate="required:true" value="<?=$value['file']?>"><img src="../_images/icons/asterisk.gif" alt="Mandatory" style="margin-left: 10px" /><br />
<label class="error" for="file[]">This field is required</label></div></td></tr>
编辑我已将其缩小为以下内容:
现有的旧代码使用jquery脚本进行验证:
<script type="text/javascript" src="../_import/js/jquery.validate.js"></script>
<script type="text/javascript" src="../_import/js/jquery.metadata.js"></script>
要为某些字段添加自动填充功能,我添加了:
<script type="text/javascript" src="../_import/js/jquery-1.9.0.js"></script>
<script type="text/javascript" src="../_import/js/jquery-ui-1.9.0.custom.js"></script>
<link rel="stylesheet" type="text/css" href="../_import/js/jquery-ui.css">
和BAM,打破了一些东西 - 当我删除那些包含和我的自动完成功能时,我的新表单现在采取相同的方式 - 即,他们不刷新,没有&#34;?action = submit&#34;添加到网址。
有没有人遇到过这种冲突?
答案 0 :(得分:0)
有时程序员不想创建另一个文件来处理请求,因此他只是手动将此GET参数添加到表单目标并检查相同页面上的某个位置,如果此参数已设置,因此他知道表单已运行。