如果我将此作为我的表格
<%= form_for @rating, :id =>"ratingForm" do |f| %>
<%= f.hidden_field :ratings, :value => '' %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
<div class="rateit" id="rateit10">
</div>
<%= f.submit "Submit" %>
<% end %>
如何传递此div中内容的值
<div class="rateit" id="rateit10">
</div>
如果我使用这个jquery,我可以得到rateit10的值
$("#rateit10").bind('rated', function() {
$(this).rateit('value');
});
该值来源于点击一组星星,我试图使用Rateit插件在rails中实现评级系统
答案 0 :(得分:2)
这会将哈希传递给您的控制器方法:
function pass_to_controller(){
var rate_value = $("#ratings").value();
var user_id = $("#user_id").value(); /*you already have access to this through current_user.id */
var recipe_id = $("#recipe_id").value();
$.ajax({
type: "Get",
url: "path_to_your_controller_action_here",
timeout: 5000,
data: {rating : rate_value, user : user_id, recipe : recipe_id }
}).done(function(response){//do your response here});
}
你无法直接传递给模型 - 这绕过了MVC背后的整个思维过程。因此,最好的方法是使用ajax
,将其传递给控制器方法,然后如果需要在数据库中执行某些操作,请调用模型方法。
使用ajax
这样的优势在于,当有人对某些内容进行评分时,它不会重新加载您的网页。
答案 1 :(得分:2)
最简单的方法是在用户点击星标时触发隐藏字段的更新,而不是在提交表单时读取星号的值。
我应该在星星上添加一个onnclick事件来更新隐藏字段。为此,请使用以下内容向隐藏字段添加ID:id =&gt;用“my_hidden_field”命名。
然后,当用户点击星标时触发javascript函数:
$("#second_star").click(function() {
$("my_hidden_field").value = 2;
});
答案 2 :(得分:0)
使用javascript显示div中的文字:
divObj = document.getElementById("rateit10");
if ( divObj ){
if ( divObj.textContent ){ //FF
alert ( divObj.textContent );
}else{ //IE
alert ( divObj.innerText ); //alert ( divObj.innerHTML );
}
}
使用javascript显示div内的innerdiv:
myDivObj = document.getElementById("rateit10");
if ( myDivObj ) {
alert ( myDivObj.innerHTML );
}else{
alert ( "Text Found" );
}
使用jquery
显示div中的文本$(function(){
var txt = $('#rateit10').text();
alert(txt);
};