【问题标题】:Why is my page reloading on form submission? [closed]为什么我的页面在提交表单时重新加载? [关闭]
【发布时间】:2015-12-29 20:18:39
【问题描述】:

http://thecoxband.com/index1.html

表单有效,但是我不知道发生了什么以及为什么 ajax 不起作用。

我从这里的几个地方得到了代码,我相信有人会将我链接到...但老实说,我对这个特别是 JQuery 或脚本很陌生,所以如果有人能告诉我什么我做错了,我会永远欠你的债。

【问题讨论】:

  • 向我们展示您的代码和表单标记。
  • 检查控制台是否有错误

标签: javascript jquery ajax


【解决方案1】:

第 93 行:您在全局窗口中声明一个对象属性。

afterLoad: function(anchorLink, index){

改为:

var afterLoad = function(anchorLink, index){

【讨论】:

    【解决方案2】:

    我看到你有这个代码:

    $('submit').click(function(){
          $.ajax({
            type:'POST',
            url: email_form.php,
            data:{
              name: name,
              email: email,
            },
            success: function(msg){
              alert('Email Sent');
            }               
          });
        });
    

    那个选择器错了,改成:

    $('#submit').click(function(){
       //...
    

    而且,您不仅希望在按钮单击时触发,而且您有两个选项,因此表单不会提交:

    1) 监听提交事件并阻止它提交

    $('#yourformid').submit(function(e){ 
        e.preventDefault(); //... }) 
    

    2) 将按钮更改为带有样式的<a> 标记,而不是提交输入。这样你就可以在不触发提交的情况下监听点击事件。

    【讨论】:

      【解决方案3】:

      Samuel 关于您遇到的 JavaScript 错误是正确的,但您离提交该表单还很远。在下面的脚本中,您通过“电子邮件”和“名称”的名称引用变量,但这些变量不存在。

        $(document).ready(function(){
          $('submit').click(function(){
            $.ajax({
              type:'POST',
              url: email_form.php,
              data:{
                name: name,
                email: email,
              },
              success: function(msg){
                alert('Email Sent');
              }               
            });
          });
        });
      

      您需要引用表单值。为此,您应该分别使用 $('input[name="email"]').val() 和 $('input[name="name"]').val() 这样代码看起来像

        $(document).ready(function(){
          $('#submit').click(function(){
            $.ajax({
              type:'POST',
              url: 'email_form.php',
              data:{
                name: $('input[name="name"]').val(),
                email: $('input[name="email"]').val()
              },
              success: function(msg){
                alert('Email Sent');
              }               
            });
          });
        });
      

      最后我注意到最后一件事,您的提交按钮应该是“按钮”而不是“提交”类型,因为后者会导致页面刷新,这会破坏正在运行的 JavaScript。

      注意,我将选择器错误 Juan 添加到结果函数中。

      【讨论】:

      • 非常感谢,伙计。现在我在“url:email_form.php”上收到“Uncaught ReferenceError:email_form is not defined”
      • 你需要引用它。 > 网址:'email_form.php',
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2019-11-26
      • 2013-01-05
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      相关资源
      最近更新 更多