我目前有一个由文本区域和提交按钮组成的远程表单。如果我键入text并点击submit,则会成功创建一个模型,并正确调用format.js
,从而导致文本在上面淡入。
但是,我希望能够通过按enter键提交表格。由于它是一个文本区域,除非我添加一个keyUp
,否则这是不可能的。然而,在这样做之后,我注意到了一些奇怪的行为。我试着呼叫$('#my_form').submit()
和$('#my_form > input').click()
。
模型创建成功(如果我重新加载页面,我可以看到它与其他页面一起列出(,但由于某种奇怪的原因,我的控制器实际上并没有调用format.js
。请记住,如果我真的点击提交按钮,一切都很好,但如果我在文本区域上用keyDown调用它,就不会了。
如果有人知道为什么会发生这种情况,并可能提出解决方案,我将不胜感激,因为这已经困扰了我很长一段时间了。
您应该能够做到这一点:
$('.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 开始127.0.0.1的POST"/some/route">
YourController#your_action作为JS 处理
如果它说as JS
,那么默认情况下它应该呈现format.js
。
已修复。出现此问题是因为它试图在文本末尾发送文本。如果我按下回车键(无论我按下了什么键(,提交按钮本身甚至都不起作用。要解决此问题,我只需在提交之前剪掉尾部。