输入字段无法从data-default属性获取正确的值

时间:2015-06-06 10:26:01

标签: jquery

我有一些包含输入字段的表格行;对于每个字段,我设置了一个数据默认属性:如果输入更改,我可以回到默认值选择数据默认值

对于每一行,我还有一个复选框:如果选中,则字段值变为'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/

请帮忙吗?

2 个答案:

答案 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');
    });

DEMO