Le HTML:
<form action="/comment_replies/ajax_create/30?type=2"
id="new_comment_2_30" method="post"
onsubmit="new Ajax.Request('/comment_replies/ajax_create/30?type=2',
{asynchronous:true, evalScripts:true,
parameters:Form.serialize(this)});
return false;">
<textarea class="tb_input_text_area" cols="40"
id="comment_reply_body" name="comment_reply[body]"></textarea>
<input class="action_button" id="comment_reply_submit"
name="commit" type="submit" value="Comment">
</form>
我的javascript
<script type="text/javascript">
$j(function(){
form_id = 'new_comment_2_30';
$j(form_id + "textarea#comment_reply_body").focus();
$j("#comment_reply_body").keypress(function(e){
if(e.which == 13){
e.preventDefault();
$j(form_id).submit();
}
});
});
</script>
那么,.submit()不是你提交ajax表单的方式吗?我知道它适用于非ajax表格 目标是使其成为类似于Facebook上的评论框(只需键入,并在准备提交时按Enter键)
注意:$ j = jQuery.noConflict,ruby on rails 2.3.8使用原型,因为它是默认的js lib
另外,正如我提出的问题:当表单加载o.o时,.focus()没有聚焦textarea,我需要做些什么特别的事情让textarea有焦点?
答案 0 :(得分:4)
在jQuery中,ID选择器必须以锐利(#
)作为前缀。将您的声明更改为:
var form_id = '#new_comment_2_30';
答案 1 :(得分:0)
除了Rob W所说的,你将选择器连接起来:
form_id + "textarea#comment_reply_body"
你需要空间来拥有嵌套选择器:
form_id + " textarea#comment_reply_body"