我有一些包含输入字段的表格行;对于每个字段,我设置了一个数据默认属性:如果输入更改,我可以回到默认值选择数据默认值
对于每一行,我还有一个复选框:如果选中,则字段值变为'0:00'(它是“小时:分钟”格式);如果未选中,则值应返回默认值
出现问题:未选中时,输入字段不会切换到默认值,而是变空。这是我的代码:
$('.cb').click(function(){
var el = $(this);
var parent = el.closest('tr');
if (el.is(':checked')) {
parent.find('.timepicker').val('0:00');
} else {
parent.find('.timepicker').val($(this).data('default'));
}
});
这是JS小提琴:http://jsfiddle.net/w17ffqxy/
请帮忙吗?
答案 0 :(得分:4)
你可以试试这个:
$('.cb').click(function(){
var el = $(this);
var parent = el.closest('tr');
if (el.is(':checked')) {
parent.find('.timepicker').val('0:00');
} else {
parent.find('.timepicker').each(function(){
$(this).val($(this).attr('data-default'));
});
}
});
这是DEMO。
答案 1 :(得分:3)
这是因为当您没有该属性时,您正试图访问复选框本身的data('default')
。您需要访问.timepicker
之类的
parent.find('.timepicker').val(function() {
return $(this).data('default');
});