轨道表单 :从以前选择的字段中更改表单字段
Rails Forms : change form fields from previously selected fields
>我有两个这样的simple_form字段:
<%= f.input :ration_card ,as: :radio_buttons,collection: ["Yes","No"], input_html: {id: "rationcard"} %>
<%= f.input :rationcardNum , label: "Ration Card No." ,input_html: {id: "rationcard_no"} %>
仅当用户为第一个字段选择"是"时,我才希望显示第二个字段。我的查询:
$(function(){
$("#rationcard").change(function(){
if ($("#rationcard").val()=="Yes"){
$("#rationcard_no").show();
} else {
$("#rationcard_no").hide();
}
})
})
我可以看到js文件包含在页面的头部。
生成的 HTML:
<div class="control-group radio_buttons optional family_ration_card">
<label class="radio_buttons optional control-label" for="rationcard">Ration card</label>
<div class="controls">
<label class="radio">
<input id="rationcard" class="radio_buttons optional" type="radio" value="Yes" name="family[ration_card]" checked="checked">
Yes
</label>
<label class="radio">
<input id="rationcard" class="radio_buttons optional" type="radio" value="No" name="family[ration_card]">
No
</label>
</div>
</div>
<div class="control-group string optional family_rationcardNum">
<label class="string optional control-label" for="rationcard_no">Ration Card No.</label>
<div class="controls">
<input id="rationcard_no" class="string optional" type="text" value="DGFR12" size="50" name="family[rationcardNum]">
</div>
</div>
但是动态字段不起作用。这是怎么回事?
或者建议任何更好的方法来实现这一目标。
首先,你不能在输入上放置id,因为你最终会得到两个相同的输入,而jQuery只会找到第一个。其次,您需要在处理程序中使用 $(this)。
您需要排队:
<%= f.input :ration_card ,as: :radio_buttons,collection: ["Yes","No"], wrapper_html: {id: "rationcard"} %>
<%= f.input :rationcardNum , label: "Ration Card No." ,wrapper_html: {id: "rationcard_no"} %>
$(function(){
var toggle_rationcardNum = function(visible) {
if (visible){
$("#rationcard_no").show();
} else {
$("#rationcard_no").hide();
}
}
$("#rationcard input").change(function(){
toggle_rationcardNum($(this).val()=="Yes")
})
toggle_rationcardNum($("#rationcard input:checked").val()=="Yes")
})();
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 防止在输入字段上单击事件
- 高级自定义字段按单选按钮值排序
- 使用JQuery启用输入字段的单选框
- SmartyStreets:使用条件字段调整表单中已验证勾号的位置
- 组合功能以使用 Jquery 在一组单选按钮中显示输入字段和单选按钮
- 使只读字段不可单击
- 使用 JavaScript 进行 HTML 字段表单验证
- JavaScript 在不输入输入字段/表单的情况下传递输入
- JQuery 在动态添加输入字段时单击浏览,而 ajax 不起作用
- 我可以让时间选择器在输入字段中单击时触发吗?
- 将隐藏字段表单值传递给控制器
- 隐藏小视口中的字段,单击按钮再次显示
- 我可以给html文本字段表单中的元素提供相同的名称和id吗
- 在新行上显示输入字段(基于单选)
- 在文本字段(表单)后插入节点
- 动态生成的名称字段的单选按钮组验证