2012-07-18 53 views
0

這是我的目標,這只是靜態的,但:jQuery的:選擇一個選項值,使該複選框名稱遵循

http://jsfiddle.net/ySu7q/

我想提出這個充滿活力的,所以下面的相關複選框遵循什麼樣的價值您已在選擇框中選擇。

我想在當前'18:00'選擇框中選擇,並將其更改爲另一個,例如19:00 - 然後下面的複選框應該跟隨並更改爲1900顯示文本和名稱應該從copyTime[1][1800]更改爲copyTime[1][1900]

我該怎麼做?我不知道從哪裏開始,也許應該重寫當前代碼的結構以使其成爲可能?

非常感謝

+0

什麼是它應該做的?使用Safari沒有任何反應。 – 11684 2012-07-18 09:53:41

+2

他寫道它是靜態的。他在帖子中描述了理想的行爲。 – Thomas 2012-07-18 09:58:59

回答

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/

絕對不是完美的,但我希望它能幫助。

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); 
}); 
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