使用Javascript/JQuery设置Rails`hidden_field_tag`Value
Using Javascript/JQuery to Set Rails `hidden_field_tag` Value
我正试图使用javascript或jquery让我的应用程序识别出哪个div
的类为active
,作为我的erb form_for
中hidden_field_tag
的值。到目前为止,我已经建立并运行了以下结构:
<div id="q1" class="row gen-quest-div">
<h1>How long do you have?</h1>
<div class="row answers">
<div id="q1-15" class="answerswer q1-answer col-xs-6 col-sm-3">
<%= image_tag 'min-15.jpg', alt: "Put 15 minutes on the clock!" %>
<p>15 Minutes</p>
</div>
<div id="q1-30" class="answerswer q1-answer col-xs-6 col-sm-3">
<%= image_tag 'min-30.jpg', alt: "Put 30 minutes on the clock!" %>
<p>30 Minutes</p>
</div>
<div id="q1-45" class="answerswer q1-answer col-xs-6 col-sm-3">
<%= image_tag 'min-45.jpg', alt: "Put 45 minutes on the clock!" %>
<p>45 Minutes</p>
</div>
<div id="q1-60" class="answerswer q1-answer col-xs-6 col-sm-3">
<%= image_tag 'min-60.jpg', alt: "Put 60 minutes on the clock!" %>
<p>60 Minutes</p>
</div>
</div> <!-- answers row -->
</div> <!-- question div -->
<div class="btn-primary" id="pre-submit">Pre Submit</div>
<script>
// Selection handling
$( document ).ready(function() {
$('.q1-answer').on('click', function() {
$('.q1-answer').removeClass('active');
$(this).toggleClass('active');
});
$('.q2-answer').on('click', function() {
$('.q2-answer').removeClass('active');
$(this).toggleClass('active');
});
$('.q3-answer').on('click', function() {
$('.q3-answer').removeClass('active');
$(this).toggleClass('active');
});
});
// Form handling
$('#pre-submit').on('click', function() {
if ($('#q1-15').hasClass('active')) {
console.log("So far this works."); // <<<<THIS LINE
}
});
</script>
这成功地选择了一个div
,点击时将其标记为.active
,并在选择答案时打印console.log
语句(仅用于测试目的…(。现在的难点是用什么来替换标记线,以使表单识别答案。我的表格结构如下:
<%= form_for @generator do |f| %>
<div id="q1-form-field">
<%= hidden_field_tag :time, id: "q1-hf" %>
</div>
...
<div class="text-center">
<h3><%= f.submit "Submit" %></h3>
</div>
<% end %>
当不采取任何操作时,隐藏字段将转换为html中的<input type="hidden" name="time" id="time" value="{:id=>"q1-hf"}">
,这可能是问题,也可能不是问题。
并尝试了几种方法来替换javascript中的console.log
语句,并为隐藏字段分配一个值,在此基础上div
就是.active
。
首先,document.getElementById("q1-hf").value = 1;
接收到控制台错误,称为new:200 Uncaught TypeError: Cannot set property 'value' of null
或者,$('#q1-hf').val(1);
不会生成控制台错误,但也不会更改hidden_field_tag
的值。
有人能帮我把这件事做好吗?我对实现同样目标的其他结构持开放态度,但我看过其他类似这样或这样的帖子,这些帖子似乎认为这应该是可能的。
<%= hidden_field_tag :time, id: "q1-hf" %>
此代码使用id="time"
进行隐藏输入,因此您应该通过document.getElementById("time")
选择它
如果您希望id为"q1-hf",则应将其更改为<%= hidden_field_tag 'q1-hf' %>
它将呈现为<input name="q1-hf" id="q1-hf" type="hidden">
,您可以按照问题中描述的方式访问它。
- Setting default onclick behavior for <img> tag in gene
- Webscratching自动化如何在没有链接TAG的情况下模拟点击HREF链接
- 覆盖“;X-Robots-Tag:noindex“;在汤博乐
- Javascript检测TAG中的完整URL
- document.hidden vs document.hasFocus() 之间的区别
- 将 jQuery 代码翻译成普通的 JavaScript for Google Tag Manager
- jQuery Tag-It – 如何在选择标签时自动显示自动完成列表
- 如何在 template.find(input:hidden[id='SOME VARIABLE']) 声明中使用动态
- GWT应用程序中出现错误HTTP 404(“Script Tag Failure-no status available
- 使用jQuery在p-tag中查找给定字符串的前10个单词和下10个单词
- 在一个html模板中使用(点击)事件来控制单独模板Angular 2中的[hidden]元素
- 使用 javascript 通过 tag->id->element 获取嵌套元素
- 无法添加.hidden类
- 在CSS3中的Select Tag(下拉菜单)中向左填充
- hidden()是javascript的保留函数吗
- 获取在hidden/shown.bs.collapse上折叠的元素
- 使用动画将toggleClass('hidden')转换为.thoggle()
- jquery escape html tag
- set razor@Html.Hidden在javascript函数中
- `base`tag导致iframe在Internet Explorer中以新窗口的形式打开