2010-11-25 39 views
6

gì là sai với tuyên bố này Nó được thể hiện lỗi cú phápRails link_to biến ruby ​​trong onclick javascript

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id +");return false;"%> 

Nhưng

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion();return false;"%> 

được tạo ra một cách chính xác mã bên dưới

<a title="Delete" onclick="removeQuestion();return false" class="action remove" href="/quizzes/remove/1"><img src="/images/cancel.png?1290165811" alt="Cancel"></a> 
+0

Hãy hiển thị các lỗi cú pháp mà bạn đang nhận được. –

+0

thông báo lỗi cú pháp là gì? –

+0

Đồng thời, vui lòng chỉ gắn thẻ các câu hỏi với * ngôn ngữ *, các thẻ bổ sung như "người trợ giúp"/"liên kết tới" không hữu ích và chỉ là thẻpam: ( –

Trả lời

10

Những gì bạn đã viết

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id +");return false;"%> 

Quả bom này vì question.id là bản sửa lỗi. Bạn sẽ nhận được can't convert Fixnum into StringTypeError.

cách để giải quyết việc này

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id.to_s +");return false;"%> 

HOẶC

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion('#{question.id}');return false;"%> 

này sẽ gửi id câu hỏi như một chuỗi để removeQuestion bạn chức năng javascript.

HOẶC

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion(#{question.id});return false;"%> 

này sẽ gửi id câu hỏi như một số nguyên để removeQuestion bạn chức năng javascript.

+0

Người cuối cùng sẽ không gửi nó dưới dạng số nguyên mà là , bởi vì JavaScript chỉ biết gấp đôi, Ok, nó tương thích với các số nguyên 32 bit, nhưng vẫn còn. – panzi

1
<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion($(this).attr('id'));return false;"%> 

này sẽ làm việc

Các vấn đề liên quan