![](/img/trans.png)
[英]How to submit a form with some hidden information in Ruby on rails?
[英]Ruby on Rails: passing conditional hidden values with form submit
简而言之:我的表单具有2个文本字段,分别用于值:title和:title_de。 我需要在提交时自动将值:lang传递为“ eng”或“ de”,具体取决于:title的字段是否为空。 怎么做?
编辑:用于创建的控制器代码:
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render 'new'
end
end
更新
在控制器中分配lang
解决方案:
def create
@article = Article.new(article_params)
@article.lang = params[:title].blank? ? "de" : "eng"
if @article.save
redirect_to @article
else
render 'new'
end
end
或者,如果您愿意,可以使用javascript / jquery来获取:title
的值,然后在提交表单之前将正确的值分配给:lang
。
片段:
$('#my-button').on('click', function() { event.preventDefault(); var title = $('#title').val(); if(title == "") { $('#lang').val("de"); } else { $('#lang').val("eng"); } // change to $('#my-form').submit(); alert($('#lang').val()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="my-form"> title: <input type="text"name="title" id="title"/><br> title_de: <input type="text" name="title_de" id="title_de"/><br> <input type="hidden" id="lang" name="lang" /> <input type="submit" id="my-button" /> </form>
当表单字段保留为空时,它返回nil。 您可以检查nil并在控制器中设置语言:
if params[:title] == "nil"
# set the language
else
# title is not nil, do something else
end
您也可以使用javascript在视图中执行此操作,但是如果用户禁用了javascript,则会出现问题。
使用javascript可以做到
In your view add hidden_file_tag
<%= hidden_filed_tag :langauge, id: "langauge" %>
and in javascript
$('#title').on("change",function(){
if($(this).val() == ""){
$("#langauge").val('eng')
}else{
$("#langauge").val('de')
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.