Rails4:如何在Rails中使用JQuery禁用基于复选框值的文本字段
Rails 4: How to Disable Text Field Based on Checkbox Value Using JQuery in Rails
我在表单中有一个复选框和一个文本字段。如果选中复选框,我希望禁用该字段(如果未选中,我希望启用它)。
我试着根据这个问题的第二个答案写一些jQuery:jQuery-复选框启用/禁用
但是,当页面加载时,文本字段is(foo_price)将被禁用,即使该字段未选中。我做错了什么?
我正在使用简单形式宝石:
<%= simple_form_for @foo do |f| %>
<%= f.input :free_flag, as: :boolean %>
<%= f.input :price %>
<%= f.button :submit %>
<% end %>
表单呈现:
<form>
<input class="boolean optional" type="checkbox" value="1" name="foo[free_flag]" id="foo_free_flag" />
<input class="numeric decimal optional" type="number" step="any" value="12.99" name="foo[price]" id="foo_price" />
</form>
我的咖啡描述:
enable_cb = ->
$('#foo_price').prop 'disabled', !@checked
return
$ ->
enable_cb()
$('#foo_free_flag').click enable_cb
return
您可以使用javascript/jquery来完成此操作,请查看此fiddle
<input type = "text" class="txt1"/>
<input type="radio" class="radio1"/>
$(function(){
$(".radio1").change(function(){
alert($(".radio1").prop("checked"));
if($(".radio1").prop("checked") == true){
$(".txt1").prop("disabled", true);
}else{
$(".txt1").prop("disabled", false);
}
});
});
当您在DOM上使用enable_cb()
时,会直接加载属性checked
,它指的是窗口对象,而不是复选框元素
我建议使用change
事件而不是click
来检查checked
属性。您应该使用.trigger(event)
以编程方式执行事件处理程序。
enable_cb = ->
$('#foo_price').prop 'disabled', !@checked
return
$ ->
$('#foo_free_flag').change enable_cb
.trigger('change')
return
相关文章:
- Kendo UI网格复选框列字段未定义
- Rad网格编辑模式通过选中复选框时的java脚本启用禁用所需的字段验证器
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 如何获取字段集元素中复选框的所有ID
- 如何获取多个复选框值并分配给隐藏字段
- j查询检查复选框是否被选中,然后向输入字段添加值
- KO 绑定复选框:从代码更改“选中”属性,不更改可观察字段
- 单击“角度”复选框时更新不相关的字段
- 在克隆复选框字段后,使用jQuery获取(并更改)该字段的名称
- 如何提交表单中的所有复选框字段
- 如何将选中的属性添加到使用jquery具有某些类的复选框字段中
- 如何使用 jquery 在页面加载时检查带有值的输入复选框字段
- 更新现有数据时检索引导模式表单中的复选框字段的值时出现问题
- 尝试检测网格视图的哪一行处于编辑模式,然后在选中复选框字段时调整文本框
- JqGrid复选框字段实现失败
- Ext JS 4复选框字段未显示
- 基于复选框字段对网格视图中的行执行操作
- 在Knockout.js中,如何在映射后根据复选框字段对viewModel项进行排序
- JavaScript if语句没有在复选框字段中注册
- 给一系列克隆复选框字段一个唯一名称的困难- javascript