如果选中,则禁用表单
If checked then disabled form
我有这些代码:
<div class="nested-fields">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<%= f.input :start_work, as: :date, start_year: Date.today.year - 20,
end_year: Date.today.year, ignore_day: true,
order: [:month, :year],
input_html: { class: 'form-control' },
label: 'Start work period' %>
</div>
<div class="form-group">
<%= f.input :is_current, label: 'Currently work here', input_html: { class: 'current' } %>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<%= f.input :end_work, input_html: {class: 'end_work'}, as: :date, start_year: Date.today.year - 20,
end_year: Date.today.year, ignore_day: true,
order: [:month, :year],
input_html: { class: 'form-control' },
label: 'End work period' %>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
// experience current work
$(".current").each(function() {
$(this).click(function() {
var isCurrent = $(this).prop("checked");
if (isCurrent == true) {
$(this).closest('.form-group').next('.form-group').find('.end_work').prop("disabled", "disabled");
}
else {
$(this).closest('.form-group').next('.form-group').find('.end_work').prop("disabled", false);
}
});
});
});
</script>
但是,当选中当前框时,我无法禁用end_work输入。我想我错过了Javascript上的目标类或其他内容。任何帮助都会很棒!
$(this).closest('.form-group').next('.form-group')
不会做你认为它会做的事情。div.form-group
在DOM中不是兄弟,所以,如果我没有弄错的话,.next('.form-group')
将找不到任何东西。
尝试$(this).closest('.col-sm-4').next('.col-sm-4').find('.end_work')
。
顺便说一句,这个代码是多余的:
$(".current").each(function() {
$(this).click(function() {
...
因为CCD_ 5已经向选择器匹配的每个元素附加了点击处理程序。你只需一行就可以完成同样的事情:
$(".current").click(function() {
...
相关文章:
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 如果消息框答案为YES,则用Javascript填写表单
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如果用户没有更改,则表单值为空
- 如果选择单选按钮,则显示表单
- 如果ng单击附加到提交按钮,则表单未验证
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 表单提交没有'如果为空,则不会显示错误消息
- 如果表单中的空字段使用Javascript从URL中排除
- 如果从文件输入按钮调用 .ajaxSubmit() 时,它是必需的表单
- 如果选择了多个选项,则使用 jQuery 显示隐藏的表单元素
- 'Alajax' Jquery 简单表单提交.如果表单未经验证,如何防止提交
- 如果字段具有无效值,请禁用表单提交
- 如何登'如果验证未通过,则不提交表单
- 如果文本字段不为空,则自动将表单提交到url
- 表单在每个页面中 - 仅在特定页面上处理它 - 如果当前不在页面上 - 重定向 - 否则 - 使用 AJAX 更新数据
- 如果AngularJS中有可编辑的表行,那么表单元素放在哪里
- 如果选中,则禁用表单
- 捕获点击事件以弹出登录表单(如果用户未登录)
- 提交时打开灯箱.如果灯箱关闭,提交表单.如果链接被点击,不要提交