【发布时间】:2011-08-14 12:18:34
【问题描述】:
很早就开始玩 Javascript、Jquery 和 Validate。
我正在使用提交按钮的onClick方法进行表单提交。
<input class="submit" type="submit" value="Submit" onClick="submitForm()" />
我正在使用提交,以防没有数据或不是每个字段都经过测试。
逻辑正常,但 AJAX 调用似乎不正常。我已将 PHP 剥离为
<?php
touch('phpTouch.txt');
phpinfo();
sleep(30;)
?>
javascript是
$(document).ready(function () {
$('#formEnquiry').validate();
});
function submitForm() {
$('#msgid').append('<h1>Submitting Form (External Routine)</h1>');
if ($('#formEnquiry').validate().form() ) {
$("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");
$.ajax({
url: "testPHP.php",
type: "POST",
data: frmData,
dataType: "json",
success: function () {
alert("SUCCESS:");
},
error: function () {
alert("ERROR: ");
}
});
} else {
$('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');
}
return false; // Prevent the default SUBMIT function occurring (is this a fact ??)
};
谁能告诉我我做错了什么。
谢谢
【问题讨论】:
-
几乎没有想到什么。首先在验证中应该有一个提交处理程序。所以这将是 validate 函数中的一个选项。其次,我不会在 onclick 中放置一个函数。如果您想要一个处理程序并且您正在使用 jquery,您应该使用 jquery 中的事件处理程序,例如
$(".submit").click(..);,但在这种情况下,您甚至不需要它,只需验证上的 submitHandler。还有 .submit() 是 jquery。 -
我的问题是我的知识太少了,我不了解内置的处理程序。我知道如何编程(尽管新语言(例如 javascript)的语法是一个学习曲线),但每次只做一个步骤,我就可以理解发生了什么。有人建议我在 Validate 中使用 sublit,但它似乎正在以一个空的形式执行,所以我一次调整了这一步,我显然做错了,因为 php 文件没有被执行。
标签: forms jquery jquery-validate