JQuery未设置Rails 5.2隐藏的\u字段值
我在Rails 5.2 simple_表单中有一个相当简单的设置,JQuery应该根据单击选择器div的位置设置一个隐藏的_字段。html/erb如下所示:JQuery未设置Rails 5.2隐藏的\u字段值,jquery,ruby-on-rails,Jquery,Ruby On Rails,我在Rails 5.2 simple_表单中有一个相当简单的设置,JQuery应该根据单击选择器div的位置设置一个隐藏的_字段。html/erb如下所示: <%= simple_form_for(@source) do |f| %> ... <div class="row justify-content-center"> <div id="selector-journal" class="selector active"&g
<%= simple_form_for(@source) do |f| %>
...
<div class="row justify-content-center">
<div id="selector-journal" class="selector active">Journal Article</div>
<div id="selector-book" class="selector">Book</div>
<div id="selector-website" class="selector">Website</div>
<%= f.hidden_field :source_type, id: "source" %>
</div> <!-- row -->
...
<% end %>
<script>
$(document).ready(function() {
$('.mdb-select').materialSelect();
$('.datepicker').pickadate();
tinymce.init({
selector: "textarea", // change this value according to your HTML
plugins: "code",
toolbar: "code",
menubar: "tools"
});
if ($("#source").val("") ) {
$('.selector').removeClass("active");
};
if ($("#source").val( "Journal") ){
$('#selector-journal').addClass("active");
} else if ($("#source").val( "Book") ){
$('#selector-book').addClass("active");
} else if ($("#source").val( "Website") ){
$('#selector-website').addClass("active");
}
$('#selector-journal').click(function(){
$('.selector').removeClass("active");
$('#selector-journal').addClass("active");
$('.source-info-section').addClass("hidden");
$('#journal-info').removeClass("hidden");
$('#source').val("Journal");
});
$('#selector-book').click(function(){
$('.selector').removeClass("active");
$('#selector-book').addClass("active");
$('.source-info-section').addClass("hidden");
$('#book-info').removeClass("hidden");
$('#source').val("Book");
});
$('#selector-website').click(function(){
$('.selector').removeClass("active");
$('#selector-website').addClass("active");
$('.source-info-section').addClass("hidden");
$('#website-info').removeClass("hidden");
$('#source').val("Website");
});
});
</script>
JQuery如下所示:
<%= simple_form_for(@source) do |f| %>
...
<div class="row justify-content-center">
<div id="selector-journal" class="selector active">Journal Article</div>
<div id="selector-book" class="selector">Book</div>
<div id="selector-website" class="selector">Website</div>
<%= f.hidden_field :source_type, id: "source" %>
</div> <!-- row -->
...
<% end %>
<script>
$(document).ready(function() {
$('.mdb-select').materialSelect();
$('.datepicker').pickadate();
tinymce.init({
selector: "textarea", // change this value according to your HTML
plugins: "code",
toolbar: "code",
menubar: "tools"
});
if ($("#source").val("") ) {
$('.selector').removeClass("active");
};
if ($("#source").val( "Journal") ){
$('#selector-journal').addClass("active");
} else if ($("#source").val( "Book") ){
$('#selector-book').addClass("active");
} else if ($("#source").val( "Website") ){
$('#selector-website').addClass("active");
}
$('#selector-journal').click(function(){
$('.selector').removeClass("active");
$('#selector-journal').addClass("active");
$('.source-info-section').addClass("hidden");
$('#journal-info').removeClass("hidden");
$('#source').val("Journal");
});
$('#selector-book').click(function(){
$('.selector').removeClass("active");
$('#selector-book').addClass("active");
$('.source-info-section').addClass("hidden");
$('#book-info').removeClass("hidden");
$('#source').val("Book");
});
$('#selector-website').click(function(){
$('.selector').removeClass("active");
$('#selector-website').addClass("active");
$('.source-info-section').addClass("hidden");
$('#website-info').removeClass("hidden");
$('#source').val("Website");
});
});
</script>
我在谷歌控制台中进行了检查,出现了value一词,但从未真正得到值。保存记录时,“源类型”字段保持空白
有人知道我做错了什么吗?您可能需要使用$document。在'turbolinks:load'上,函数{……您试过了吗?您可能还需要同时使用turbolinks和常规ready,就像这个$document。在'ready turbolinks:load'上,函数{…我已从我的应用程序中删除TurboLink@rockwellrice@rockwellrice我知道它运行正常,因为每当单击div时,活动类都会被添加和删除。对不起,还有一个问题需要验证,当提交时,您可以看到发送过来的参数中的source_类型为空,对吗?我是在问bee因为jquery看起来是正确的,我想验证它不是像控制器中被白名单列出的遗漏参数之类的东西。@RockwellRice是的,source_type=>就在服务器日志中。