在JQuery Ajax验证后如何提交表单? - php

我无法使.submit()jQuery函数正常工作,我将代码中的所有内容都归结为:

  <form action="/server/addserver.php" method="post" accept-charset="utf-8" id="mainform"><input type="text" name="test" value=""  /><input type="submit" name="submit" value="Submit" id="submitbutton" /></form>

<script type="text/javascript">
    $("#submitbutton").click(
    function(){
         $("#mainform").submit();
             return false;
    });
</script>

在我看来,这应该1-停止按钮的默认行为,然后2-手动提交表单。

如果我换出.submit();用.hide();那个有效。这不是在首先运行一些Ajax验证后手动提交表单的首选方法吗?

谢谢

参考方案

首先,我认为您应该注意以下几点:

每当您想立即将事件绑定到DOM元素时,都应确保页面已完全加载。如有疑问,请将您的代码包装在$(document).ready(function(){/ *要在页面加载后执行的代码* /});中。
另外,如果将input [type =“ submit”]元素的name属性设置为值“ submit”,则.trigger(“ submit”)方法将不起作用。由于不带参数的.submit()是.trigger('submit')的快捷方式,因此,每当您在元素上调用JQuery的.submit()方法时,您都需要确保并分配输入名称的属性,而不是“提交”。

现在,回答您的问题;首先,关于返回false是否是手动提交表单的首选方式,答案通常是“否”。原因是返回false会做三件事,而您通常不想全部都做。它可以防止事件的默认浏览器行为,还可以阻止事件冒泡,并立即返回并退出该函数。通常,您可能只想event.preventDefault()或event.stopPropagation()…甚至完全取消绑定该事件。但是,在我看来,在这种情况下,返回false而不是调用适当的night方法似乎会混淆代码的意图。

如果还需要防止对提交事件执行默认的浏览器操作,则可以使用JQuery的备用触发器方法:
$('#mainform')。triggerHandler('submit');

但是,在没有错误的情况下,验证器方法本身可能应该在调用form.submit()的位置。可以说,它也是您处理表单提交的地方,因为它是网守。

总而言之,如果要使用Validator插件,则应遵循其自己的约定。通过将name =“ submit”添加到您的提交按钮,然后删除您拥有的所有JQuery代码并将其替换为Validator文档中的以下示例,确保表单执行默认的提交:

$(“#mainform”)。validate({
SubmitHandler:函数(窗体){
form.submit(); //在此不要使用JQuery选择器,只需使用“ form”
}
});

那应该允许插件按预期运行。当然,最后一步是添加验证规则。希望对您有所帮助。如果仍然无法进行事件处理,请尝试使用JQuery的Event对象方法在控制台上进行调试。

在jQuery Full Calendar中将PHP日期设置为今天的日期 - php

我正在研究jQuery的完整日历插件。我必须根据动态时区设置今天的完整日历日期。我今天的日期在PHP变量中。如何通过完整日历中的PHP变量设置今天的日期。我曾尝试使用gotoDate选项,但无法正常工作。请找到以下代码:-$("#calendar").fullCalendar({ gotoDate : <?php echo $sta…

jQuery-找不到Ajax网址 - php

好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…

PHP:将数据从二维数组复制到一维数组的最快方法 - php

我有一个巨大的二维PHP数组,带有500万行。$t = [ [ "id" => 1, "name" => "foo" ], [ "id" => 2, "name" => "bar" ] ]; 现在,我必须将此数组的I…