jQuery:选择一个选项值并按下复选框名称

时间:2012-07-18 09:51:08

标签: jquery

这是我的目标,但这只是静态的:

http://jsfiddle.net/ySu7q/

我希望这个动态化,所以下面的相关复选框将遵循您在选择框中选择的值。

我想在当前的'18:00'选择框中选择,并将其更改为另一个,例如19:00 - 然后下面的复选框应该跟随并更改为1900显示文本和名称应该从copyTime[1][1800]更改为copyTime[1][1900]

我该怎么做?我不知道从哪里开始,也许应该重写当前代码的结构以使其成为可能?

非常感谢

4 个答案:

答案 0 :(得分:1)

我创建了一个可能的解决方案:

$('select').change(function(){
    var $this = $(this),
        time = $this.val(),
        $checkbox = $('#'+$this.attr('data-checkbox')),
        $checkbox_label = $('label[for="'+$this.attr('data-checkbox')+'"]');

    $checkbox.attr('name', 'copyTime[1]['+time+']');
    $checkbox_label.text(time);
});​​​​

http://jsfiddle.net/ySu7q/1/

绝对不完美,但我希望它有所帮助。

答案 1 :(得分:0)

$(".select").change(function() {
    if($(this).is(":first-child"))
        $(".label:first-child").html($(this).val());
    else if($(this).is(":last-child"))
        $(".label:last-child").html($(this)val());
    else
        $(".label").eq(1).html($(this).val);
});

答案 2 :(得分:0)

你可以试试这个:

http://jsfiddle.net/ySu7q/2/

这是你想要的吗?

答案 3 :(得分:0)

所以:

使用这种方式复选框:

<input type="checkbox" name="copyTime[1][1800]" value="1" CHECKED> <span>1800</span>

这是JS:

$('select').on('change', function(){

    var ind = $(this).index();
    var newVal = $(this).val().replace(':', '');
    //alert($("input:checkbox").eq(ind).attr('name'));
    $("input:checkbox").eq(ind).attr('name', 'copyTime[1]['+newVal+']');
    $("input:checkbox").eq(ind).next('span').html(newVal);

});

这是Fiddle