我目前有一个包含文本区域和提交按钮的远程表单。如果我键入文本并点击提交,则会成功创建模型并正确调用format.js
,从而导致文本在上面淡入。
但是,我希望能够通过按Enter提交表单。由于它是文本区域,除非我添加keyUp
,否则这是不可能的。但是,在这之后我发现了一些奇怪的行为。我尝试拨打$('#my_form').submit()
以及$('#my_form > input').click()
。
模型创建成功(如果我重新加载页面,我可以看到它与其余部分一起列出),但由于一些奇怪的原因,我的控制器实际上并没有调用format.js
。请记住,如果我实际单击提交按钮,一切正常,但如果我在textarea上使用keyDown调用它,则不会。
如果有人知道为什么会这样,并且可能会提出一个解决方案,我会非常感激,因为它已经困扰了我很长一段时间。
答案 0 :(得分:0)
你应该能够做到这一点:
$('.some-div-here textarea').live('keydown', function(event) {
if(event.keyCode == '13') {
$('#my_form').submit();
return false;
}
});
在Rails控制器的眼中,手动点击提交按钮和让jQuery为你提交它之间应该没有区别。
如果您查看Rails日志,您应该能够看到:
在2011-12-04 21:23:51 -0500开始发布“/ some / route”for 127.0.0.1
由YourController处理#your_action为JS
如果显示as JS
,则默认情况下应该呈现format.js
。
答案 1 :(得分:0)
固定。问题出现了,因为它试图在\ r \ n的末尾发送文本。如果我按下回车(并且无论我按下什么键后),它自己的提交按钮甚至都不起作用。为了解决这个问题,我只是在提交之前剪掉尾随的\ r \ n。