2014-06-18 86 views
-1

DEMO驗證 - 只有當複選框被選中和單選按鈕選中

應該是相當的說明。

在最後有一些單選按鈕和一個複選框。

幫助1.我想要的是當只有複選框被選中時,選中的單選按鈕的值以及textarea和下拉列表的值(如果單擊丟失單選按鈕)將被填充到文字區域在底部?

幫助2.現在單擊單選按鈕時,顯示所有選中的單選按鈕值。我哪裏錯了?

爲了幫助您從文本區域瞭解由〜和|分隔的數據,在單擊「保存所有」按鈕時會轉到下一個階段。最初當頁面加載單選按鈕時根據前一頁預先檢查,但不需要在底部文本區域填充任何內容。

我們使用jquery 1.6.4

function updateSummary($this){ 
$this.closest('[id]').find('.r-title, .m-notes-wrapper, .up-arrow, .down-arrow').hide(); 
var totalRd = $('table').find('input:radio:checked').length; 

// Array of clicked items 
var clicked = []; 

// Set number of selected items 
$("#totalRd .rd-count").html(totalRd); 

// Show the title and notes next to the radio button 
$this.siblings('.r-title, .m-notes-wrapper, .up-arrow, .down-arrow').show(); 

// Find checked radio buttons that has been clicked 
$('table').find("input[type=radio]:checked:enabled").each(function() { 
    // Find closest ancestor with an id 
    // See if we have a text box, if so use the text 
    var $text = $(this).parent().find('textarea.m-notes:visible'); 
    var missingReason = $(this).parent().find('.reason').val(); 
    var selectedId = $(this).closest('[id]').attr('id'); 
    var value = selectedId + "~" + $(this).val(); 
    if ($text.length) 
    { 
     value += "~" + missingReason +"~" + $text.val(); 
    } 
    clicked.push(value); 
}); //checked 

// Display the selected ids 
$("#inputhere").val(clicked.join('|')); 
} 

// Radio selection changes selected options 
$("input:radio").click(function() { 
updateSummary($(this));  
}); 
$('textarea.m-notes').bind('keyup', function() { 
updateSummary($(this).siblings(':radio')); 
}); 

$('select.reason').change (function() { 
updateSummary($(this).siblings(':radio')); 
}); 

$("input:checkbox").change(function(){ 
updateSummary($(this));  
}); 

感謝您的幫助。

回答

1

更新textarea的時候你可以添加一個條件:

if($('table').find("input[type=checkbox][name='" + $(this).attr('name') + "']").is(':checked')) { 
    var $text = $(this).parent().find('textarea.m-notes:visible'); 
    var missingReason = $(this).parent().find('.reason').val(); 
    var selectedId = $(this).closest('[id]').attr('id'); 
    var value = selectedId + "~" + $(this).val(); 
    if ($text.length) 
    { 
     value += "~" + missingReason +"~" + $text.val(); 
    } 
    clicked.push(value); 
} 
+0

嗨!謝謝...似乎沒有工作。我想:檢查:啓用會做的伎倆... – 19eggs

+0

http://jsfiddle.net/6f9hs/1/它確實爲我工作,除非你要求別的東西 – user1278743

+0

嗨!我可以在文本區域中看到任何東西...保存按鈕下方... – 19eggs