我有一个窗体,每个复选框有多个复选框字段和相应的注释字段。我动态地创建这些字段。例如,复选框字段tag1将对应于comments1。当复选框被选中时,我不想要求评论。当它没有被检查时,我想要求评论。复选框更改事件触发另一个字段是必需的
有时,根据用户的上次输入预填充字段。换句话说,复选框可能已经在页面加载时被检查,或者可能不是。我有逻辑设置建立相应的注释字段为要求或不需要基于此。
一切似乎都在工作,除了一个。当我选中该复选框并取消选中该复选框时,表单允许我提交没有评论。以下是我所尝试过的。
$(document).on('change', 'input[type=checkbox]', function() {
var checkbox = $(this),
otherInput = $('#comments' + this.id.replace('tag', ''));
otherInput.removeProp('required', !checkbox.is(':checked'));
if (!checkbox.not(':checked')){
otherInput.prop('required',true);
}
});
--------------------第二次尝试
$(document).on('change', 'input[type=checkbox]', function() {
var checkbox = $(this),
otherInput = $('#comments' + this.id.replace('tag', ''));
otherInput.prop('required', !checkbox.not(':checked'));
otherInput.removeProp('required', !checkbox.is(':checked'));
});
的这两种解决相同的情况下,除了所述一个,如上所述。请指教。
'otherInput.removeProp('required',!checkbox.is(':checked'));'在第二个例子中是什么意思? – guest271314
@ guest271314当用户选中复选框时,它将从相应的注释字段中删除所需的属性 –
是的,尽管前一行'otherInput.prop('required',!checkbox.not(':checked'));'实现了这个,是吗?你可以创建一个jsfiddle来演示问题吗? – guest271314