HI
I have a .js.erb file, like:
(1) $(’#ajax-content’).html(" here to beigin
“)
(2) $(’#ajax-content’).append(”
<%= escape_javascript(
render :partial => ‘ajaxnewmsg’, :locals =>
{ :privatemsg => @privatemsg }
).html_safe
%>
“)
(3) $(’#ajax-content’).append(” yes finished!")
if without (2) , (1),(3) can show the on the web page with firefox.
But if there is (2), nothing will show on the ajax-content. I
attached the ajax response from firebug at the end. ( anything wrong
with that response?)
The question is: what is the best practice to show the complicated
html ( render result) in .js.erb template? ( render :partial
=> ‘ajaxnewmsg’, :locals => { :privatemsg => @privatemsg } should be
perfect legal in rails/ruby )
why it is not working? How could I debug it?
##the response see from firebug
$(’#ajax-content’).html(" yes I am here to beigin
")
$(’#ajax-content’).append("<a href="/privatemsgs?locale=en">Back to
Inbox</a>")
$(’#ajax-content’).append("
<a href="/privatemsgs?locale=en">Back to Inbox</a>
\n
\nSend message to :\n</h3>\n\n<form accept-charset=“UTF-8” action=
“/privatemsgs/createmsg?locale=en” method=“post”><div style=
“margin:0;padding:0;display:inline”><input name=“utf8” type=
“hidden” value=“✓” /><input name=“authenticity_token”
type=“hidden” value="cAmImbh6beNCdYm/OIXo8EFLasELwvaewpw4QvO45TY=
" /></div>\n \n\n\n\nName </b>
\n <style type=“text/css”>
div.auto_complete {\n width: 350px;\n background:
#fff;\n }\n div.auto_complete ul {\n border:1px
solid #888;\n margin:0;\n padding:0;\n
width:100%;\n list-style-type:none;\n }\n
div.auto_complete ul li {\n margin:0;\n padding:3px;
\n }\n div.auto_complete ul li.selected {\n
background-color: #ffb;\n }\n div.auto_complete ul
strong.highlight {\n color: #800; \n margin:
0;\n padding:0;\n }\n</style>\n <input
id=“model_auto_completer_hf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd”
name=“privatemsg[member_id]” type=“hidden” />
\n <input
id=“model_auto_completer_tf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd”
name=“member[name]”
onchange=“window.setTimeout(function () {this.value =
this.model_auto_completer_cache}.bind(this), 200)”
onfocus=“if (this.model_auto_completer_cache == undefined)
{this.model_auto_completer_cache = this.value}”
onkeypress=“return event.keyCode == Event.KEY_RETURN ? false :
true” type=“text” />\n <div
class=“auto_complete”
id=“model_auto_completer_tf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd_auto_complete”></
div>\n <script type=“text/javascript”>\n//<!
[CDATA[\nvar
model_auto_completer_tf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd_auto_completer
= new
Ajax.Autocompleter('model_auto_completer_tf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd
',
'model_auto_completer_tf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd_auto_complete
', ‘/privatemsgs/auto_complete_belongs_to_for_privatemsg_member_name?
locale=en’, {afterUpdateElement: function(element, value) { var
model_id = /(\d+)$/.exec(value.id)[1]; $
(“model_auto_completer_hf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd”).value
= model_id; element.model_auto_completer_cache = element.value;
(Prototype.emptyFunction)(element, value, $
(“model_auto_completer_hf_1b4878a8928a1d6d9bc6d7dc2bd731795525ccbd”),
model_id); } , parameters:‘authenticity_token=’ +
encodeURIComponent(‘cAmImbh6beNCdYm/OIXo8EFLasELwvaewpw4QvO45TY=’)})
\n//]]>\n</script>\n\n
\n\n<input id=
“privatemsg_from_member_id” name=“privatemsg[from_member_id]” type=
“hidden” value=“349” />\n\nSubject</b>
\n<input id=
“privatemsg_subject” name=“privatemsg[subject]” size=“80” type=
“text” />\n\n
\n\nMessage</b>
\n<textarea cols=“59” id=
“privatemsg_message” name=“privatemsg[message]” rows=“15”></
textarea>\n
\n\n\n\n\n <input name=
“commit” type=“submit” value=“Send” />\n</form>
")
$(’#ajax-content’).append(" yes finished!")
thanks.
Sincerely
Min Wang