作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题表格。如果回答是,则会出现一组复选框;如果没有回答,什么都不会发生。
<tr>
<td>Question?</td>
<td>
<label><input name="selector" type="radio" value="yes" />Yes</label>
<label><input name="selector" type="radio" value="no" />No</label>
<br />
<div id="subset">
<label class="disabled"><input name="select1" type="checkbox" value="select1" />option1</label><br />
<label class="disabled"><input name="select2" type="checkbox" value="select2" />option2</label><br />
<label class="disabled"><input name="select3" type="checkbox" value="select3" />option3</label><br />
<label class="disabled"><input name="select4" type="checkbox" value="select4" />option4</label>
</div>
</td>
</tr>
<script>
$(document).ready(function(){
$('input[name=selector]').click(function(){
var selector = $(this).val();
if (selector == 'no') {
$('#subset label').addClass('disabled');
$('#subset input').attr('disabled', 'disabled');
$('#subset input').attr('checked', false);
} else {
$('#subset label').removeClass('disabled');
$('#subset input').removeAttr('disabled');
}
});
});
</script>
这段代码工作正常,但可以预先填写表格。如果是这样,它必须以相同的方式工作:如果选择是,sset 应该是可见的。
我知道我可以在一个单独的代码块中再次使用 jQuery 轻松地做到这一点(见下文),但我希望我可以通过稍微改变现有代码来做到这一点。
var selector = $('input[name=selector]:checked').val();
if (selector == 'no') {
$('#subset label').addClass('disabled');
$('#subset input').attr('disabled', 'disabled');
$('#subset input').attr('checked', false);
} else {
$('#subset label').removeClass('disabled');
$('#subset input').removeAttr('disabled');
}
预填充是用 smarty 完成的,看起来像下面的代码,我把它放在所有的单选和复选框标签中。
{{if $array.ELEMENT.answer=='VALUE'}} checked{{/if}}
那么问题来了,如何在不添加大量代码的情况下获得额外的功能?
谢谢!
最佳答案
只是触发点击事件..在DOM就绪事件..
$(function(){
$('input[name=selector]').click(function(){
var selector = $(this).val();
if (selector == 'no') {
$('#subset label').addClass('disabled');
$('#subset input').attr('disabled', 'disabled');
$('#subset input').attr('checked', false);
} else {
$('#subset label').removeClass('disabled');
$('#subset input').removeAttr('disabled');
}
});
$('input[name=selector]:checked').click();
// Will trigger the click event on page load
});
因此,基于预填写的表单,将为选中的项目触发此事件。
关于javascript - 在预填表格上显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13611651/
在使用网站、加载内容等一段时间后,此消息显示“Fill:SelectCommand.Connection 属性尚未初始化”!我认为这是因为 sql 连接,但不确定......我想知道我能做些什么来防止
我是一名优秀的程序员,十分优秀!