条件隐藏字段标记 - Rails
Conditional Hidden Field Tag - Rails
现在我正在将 plan_id 硬编码到隐藏字段标记中。当用户 select 使用我的应用程序提供的免费计划时,这非常有效。但是,当他们 select 一个显然有不同 ID 的付费计划时,这会把一切都搞砸。如果 plan_id 是付费计划,我的表单使用 JS 呈现部分付款,但如果它是免费计划,则跳过部分付款。那么,我如何根据用户 select 付费计划或免费计划动态设置参数。这是我的代码。
<label>
<%= hidden_field_tag :plan_id, 1 %>
<%= f.submit "Select", class: "button-big reverse-blue" %>
</label>
如果用户select是这个。对象已创建,一切都很好。但这只是一种选择。用户也可以select这个。
<label>
<input type="radio" name="plan_id" id="plan_id_5" value="5" data-plan-form-next data-plan-name="Surveillance Van" data-plan-price="79" />
<span class="button-big reverse-blue">Select</span>
</label>
如果用户select点击此按钮,JS 会隐藏此页面并取消隐藏付款表单。当用户输入付款信息并提交表单时,一切正常,除了现在他们的 plan_id
为 1,而不是他们应该有 plan_id
为 5。我可以设置 [=23 的参数吗? =] 1 在提交按钮?
综上所述。除非选择免费计划,否则我怎么能不将参数硬编码为一个计划 ID?希望这足够清楚,如果您需要查看更多代码或更多解释,请告诉我。
这有点老套,但您可以使用 jQuery 根据选择的单选按钮为隐藏字段分配值
为您的 hidden_field_tag
分配一个 ID
<%= hidden_field_tag :plan_id, '', id: 'plan_id_hidden'%>
然后使用 jQuery 或直接使用 javascript 来设置它的值。
jQuery
$(document).ready(function(){
$( "[type=radio]" ).change(function() {
if ($("#plan_id_1").is(':checked')) {
$('#plan_id_hidden').val('1')
} else if ($("#plan_id_2").is(':checked')) {
$('#plan_id_hidden').val('2')
} else {
$('#plan_id_hidden').val('')
}
});
});
现在我正在将 plan_id 硬编码到隐藏字段标记中。当用户 select 使用我的应用程序提供的免费计划时,这非常有效。但是,当他们 select 一个显然有不同 ID 的付费计划时,这会把一切都搞砸。如果 plan_id 是付费计划,我的表单使用 JS 呈现部分付款,但如果它是免费计划,则跳过部分付款。那么,我如何根据用户 select 付费计划或免费计划动态设置参数。这是我的代码。
<label>
<%= hidden_field_tag :plan_id, 1 %>
<%= f.submit "Select", class: "button-big reverse-blue" %>
</label>
如果用户select是这个。对象已创建,一切都很好。但这只是一种选择。用户也可以select这个。
<label>
<input type="radio" name="plan_id" id="plan_id_5" value="5" data-plan-form-next data-plan-name="Surveillance Van" data-plan-price="79" />
<span class="button-big reverse-blue">Select</span>
</label>
如果用户select点击此按钮,JS 会隐藏此页面并取消隐藏付款表单。当用户输入付款信息并提交表单时,一切正常,除了现在他们的 plan_id
为 1,而不是他们应该有 plan_id
为 5。我可以设置 [=23 的参数吗? =] 1 在提交按钮?
综上所述。除非选择免费计划,否则我怎么能不将参数硬编码为一个计划 ID?希望这足够清楚,如果您需要查看更多代码或更多解释,请告诉我。
这有点老套,但您可以使用 jQuery 根据选择的单选按钮为隐藏字段分配值
为您的 hidden_field_tag
分配一个 ID<%= hidden_field_tag :plan_id, '', id: 'plan_id_hidden'%>
然后使用 jQuery 或直接使用 javascript 来设置它的值。 jQuery
$(document).ready(function(){
$( "[type=radio]" ).change(function() {
if ($("#plan_id_1").is(':checked')) {
$('#plan_id_hidden').val('1')
} else if ($("#plan_id_2").is(':checked')) {
$('#plan_id_hidden').val('2')
} else {
$('#plan_id_hidden').val('')
}
});
});