【问题标题】:jquery , return false on submit doesnt workjquery,提交时返回false不起作用
【发布时间】:2011-09-23 12:14:30
【问题描述】:

伙计们,我快疯了,我不明白为什么这不起作用(总是如此!)

        //add new folder
        $("#add_folder_form").submit(function(event){

            var folder_name = $(this).find([name="folder_name"]).val();
            var post_string = "folder_name="+folder_name+"&path="+path;
            $.ajax({
                type : "POST",
                url: "/admin/controllers/add_new_folder,php",
                data : post_string,
                success: function(response){

                    if (response){
                        event.preventDefault();
                     }
                     else {
                        event.preventDefault();
                     }
                }
            })


event.preventDefault();
        });

HTML

<form  id="add_folder_form" action="" method="post">
  New folder  <input style="width: 400px" name="folder_name" type="text" />
  <input type="submit" id="add_folder_form_send" value="save"/>
</form>

我还尝试在 #add_folder_form_send 上使用 click 并使用 return false;在函数的底部。它总是提交!

【问题讨论】:

  • 如果你在这两种情况下都做同样的事情,那么 if(response) 有什么意义?

标签: jquery submit return


【解决方案1】:

试试这个...

$('selector').submit(function(event){
   event.preventDefault();
   ....// your ajax code here...
   return false;
})

因为当你点击 preventDefault();该页面已经为您重新加载了……现在执行任何脚本操作已经太晚了……

【讨论】:

  • 问题是 find([name="folder_name"]) 显然不正确
  • 哦是的应该是 "find("[name=folder_name]")"... 但你仍然应该使用 event.preventDefault();第一件事 :) 我从来没有在这么少的脚本中看到这么多错误哈哈 :) 但祝你好运 :)
【解决方案2】:

您的 javascript 是否抛出任何错误(检查控制台 - 将其设置为因错误而中断)?

这条线看起来很可疑(逗号而不是点)

url: "/admin/controllers/add_new_folder,php",

【讨论】:

    【解决方案3】:

    你添加','更改为'。'在以下文字中add_new_folder,phpadd_new_folder.php

    【讨论】:

    • 这是一个好点,但他说他不能阻止浏览器提交表单... :)
    【解决方案4】:

    也许是因为这个:

    /admin/controllers/add_new_folder,php
    

    ...用点替换逗号,这将为您提供:

    /admin/controllers/add_new_folder.php
    

    【讨论】:

      【解决方案5】:

      试试

      return false;
      

      而不是

      preventDefault();
      

      【讨论】:

        【解决方案6】:
        return function(event){event.preventDefault();}/*return false*/
        

        【讨论】:

          猜你喜欢
          • 2018-10-18
          • 2015-07-13
          • 1970-01-01
          • 1970-01-01
          • 2013-10-20
          • 2014-04-03
          • 2013-03-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多