2011-05-31 69 views
0

以下代码用于在不试图用jQuery verion 1.6呈现新模板的情况下运行。我安装了jQuery 1.6.1,现在单击按钮单击结果尝试呈现新页面。jQuery“return false”工作在1.6版本,但不是1.6.1(rails 3)

仅供参考,每次点击都会提交表格,因为相当多的客户会完成部分问题,关闭浏览器并期望他们的工作在他们回来完成时留在那里。如果有更好的方法,我很想知道它。

在开发计算机上的application.js

$('.submittable').live 
    ('change', function() 
     { 
     $(this).parents('form:first').submit(); 
     return false; 
     } 
    ); 

同样,这部作品在jQuery的1.6,但不是1.6.1。我用this tutorial作为指导。

任何帮助表示赞赏。

更新:此问题的延续here

+2

'* blah * .submit()'将导致表单POST/GET。你在期待什么?只有当绑定到表单的Submit事件的JS返回'false'时,表单才会被提交... – 2011-05-31 19:55:03

+0

你好,@GregB。我有“回报假”;以上。我的语法错了吗?你能告诉我它应该看起来怎么样?任何“嗡嗡声”将不胜感激:=] – Jay 2011-05-31 20:04:02

+1

杰伊,你怎么能提交表单,但想用'return false'取消它。你能描述一下你想做什么吗 – 2011-05-31 20:21:03

回答

1

问题是生产机器上的jQuery和开发机器上的另一个版本。我们在开发机器上将1.6从1.6更改为1.6.1分钟。当我改回它时,问题消失了。谢谢你们的帮助。对代表的荣誉。如果他发布,我会将答案交给他。

+0

我只是很乐意提供帮助。我做的最多的是指向不同的方向,因为JavaScript似乎没有改变。很高兴知道问题解决了。 – thedaian 2011-05-31 21:29:11

+0

v1.6不推荐,它有可能打破许多jQuery插件和你现有的任何代码。关于$ .attr()与$ .prop()的完整交易已经在v1.6.1中解决了(基本上向后兼容性被添加了,因为它应该在v1.6中)。 – CaptSaltyJack 2011-05-31 21:50:37

+0

@CaptSaltyJack,我已经更新了原来是真正问题的帖子。任何帮助表示赞赏。谢谢。 – Jay 2011-05-31 23:45:01

1

尝试:

$('.submittable').live('change', function(event) { 
    event.preventDefault(); 
    $(this).parents('form:first').submit(); 
    return false; 
}); 
+0

感谢您的尝试,但它仍尝试呈现新模板。 – Jay 2011-05-31 20:25:15

1

看事件...你每次提交表单,然后试图返回假......也许您正在寻找这样的事情你的直链:

$('.submittable').live('change', function(){ 
    if(/some condition/){ 
     $(this).parents('form:first').submit(); 
    } else { 
     return false; 
    } 
}); 
+0

你是对的。每次都提交表单而不呈现页面。我们这样做是因为不少客户会完成部分问题,关闭浏览器并期望他们的工作在他们回来时完成。 – Jay 2011-05-31 20:38:01

相关问题