1
<form method="post" action="#" name="sign-up" id="sign-up">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<label for="last-name">Last Name:</label>
<input type="text" id="last-name" name="last-name">
<label for="age">Age:</label>
<input type="text" id="age" name="age">
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<input type="submit" value="Verify" id="submit-form">
  </form>
<div id="result"></div>
<script>

(function() {
$('form').on('submit',function(e) {
e.preventDefault();
$('#verify').slideUp();
    $.ajax({
    type: "POST",
    url:"https://externalhost/file.php",//not the actual host
    data: $('form').serialize(),
    success: function(result) {
    $('#result').html(result); }
    });
});

})();

如您所见,我正在尝试为我的访问者制作订阅表格,但我遇到了麻烦。

首先,我无法检查是否所有字段都已完成,因为它正在显示结果,例如使用 .show()。

其次,$.ajax 形式它自己正在工作,我正在接收所有信息以及它在 MySql 中注册的所有内容,因此通过 $.ajax 调用的外部文件也很好,但结果它没有显示出来。

此外,这将是一个 Facebook 应用程序,但它也不能在 Facebook 上运行:/

谁能帮助我,我在这里做错了什么?

编辑:

虽然标记中的 # 是一个错误,但我修复了它,但它再次不起作用:/

4

2 回答 2

1

您的标记中有错误:

<div id="#result"></div>

应该

<div id="result"></div>

如果你result是一个对象,使用html()将不起作用。但是,您可以拥有一个each()循环遍历每个对象属性并将值附加到您的#resultdiv 的函数。

$.each(result, function(key, element) {
  $("#result").append(key + ": " + element + "<br />");
});

演示

于 2013-03-13T17:51:37.110 回答
0

您必须将 jQuery 传递给您的自调用函数。你可以这样做...

(function($) {
...

})(jQuery);

并确保在所有开始之前将脚本文件加载到页面上的某个地方

于 2013-03-13T18:19:31.700 回答