我的表单有问题。
我想使用jquery ajax来验证数据库的表单,并遇到不同的问题。
1。
$('#formsubmit').click(function(e) {
e.preventDefault(); // this is not working, the page reloads
});
2
$('#formsubmit').live('click', function(e) {
e.preventDefault(); //works, but...
var firstname = $('#firstname').val(); // returns an empty string and ...
firstname = document.getElementById('firstname'); //does not return anything either
alert("$('#firstname')"); // returns [object][object] ... should'nt it be [object][html inputelement]
});
到目前为止,我还没有能够点击我的表单的提交按钮来触发ajax加载,因为我无法获取输入字段的值。
我在这里错过了什么吗? 是否可以使用另一种方法: 1.阻止页面重新加载提交 - 单击和 2.获取表单的所有值,并通过ajax将它们发送到我的php脚本 3.等待答案并将其显示在相应的html元素中。答案 0 :(得分:1)
问题是你阻止了click
事件,而不是submit
事件,这就是你想要捕获的事件,如下所示:
$("#formid").live("submit", function(e) {
e.preventDefault();
$.post("myPage.php", $(this).serialize(), function(result) {
$("#resultContainer").html(result);
});
});
在上面,我们在<form>
上使用.serialize()
来获取所有要提交的数据(来自所有成功的输入),就像正常提交一样(使用没有 JavaScript)。
另外,我不能从您的问题中说出来,但请确保您的id
属性是唯一的,例如只有一个 id="firstname"
,如果情况并非如此,那么你会遇到很多问题。