2016-03-04 72 views
1

在我的web表單中,我動態地生成了多個複選框。因此他們不受控制。我試圖讓使用的Request.Form [名稱]值,但它是不正確的在c中獲得多個複選框選中的值#

<input type="checkbox" name="Suppresision" value="Suppresision" />Suppresision 

現在我有一個動態(使用Javascript)添加更多類似的複選框中添加按鈕。所以在我的表格元素現在我有

<input type="checkbox" name="Suppresision" value="Suppresision" />Suppresision 
<input type="checkbox" name="Suppresision" value="Suppresision" />Suppresision 
<input type="checkbox" name="Suppresision" value="Suppresision" />Suppresision 

我該如何獲得所有三個值?我爲文本框做了同樣的事情,但是當我使用Request.Form[textbox name]時,我得到了逗號分隔的所有這些值。但對於複選框我做Request.Form["Suppresision"]我只得到一個值的太Suppresision代替checked or not checked.如何獲得,即使它沒有檢查

+0

不,它是逗號分隔值。此外,如果任何複選框沒有被選中,它不會給出任何值。例如,檢查chbx1和chbx3,並且不檢查chbx2。我得到的結果是「Suppresision,Suppresision」。只有兩個值,而不是三個 – user3342812

+0

從複選框中刪除值,看看你得到什麼?我認爲它應該是真實的,虛假的。讓我知道 –

回答

0

您有三個複選框相同的name屬性值這三個值。您應該有所不同,以確保它們可以從服務器端的請求表單集合中分別讀取。另外,在複選框的情況下,應該檢查屬性。希望這會給你帶來正確的方向。

<input type="checkbox" name="Suppresision1" checked="checked" /> 
<input type="checkbox" name="Suppresision2" checked="" /> 
<input type="checkbox" name="Suppresision3" checked="" /> 
0
<input type="checkbox" class="chkItems" name="Suppresision1" checked="checked" /> 
<input type="checkbox" class="chkItems" name="Suppresision2" checked="" /> 
<input type="checkbox" class="chkItems" name="Suppresision3" checked="" /> 

var chkValue = []; 
$('.chkItems:checked').each(function(i, e) { 
chkValue.push({ 
     chkItem : $(this).val() 
    }); 
}); 
0

如果你確實需要得到所有的CheckBox控件已動態添加,你可以將它們組裝成一個隱藏的輸入,當你提交表單的列表。

您需要包括每個組複選框你喜歡的名字命名添加一個隱藏的輸入=「[複選框名稱] _allValues」

<input type="checkbox" name="Suppresision" value="Suppresision1" />Suppresision 1 
<input type="checkbox" name="Suppresision" value="Suppresision2" />Suppresision 2 
<input type="checkbox" name="Suppresision" value="Suppresision3"/>Suppresision 3 
<input type='hidden' value='' name="Suppresision_allVals"> 

然後在這個jQuery添加到循環的複選框組,並將有權訪問服務器上每個複選框的值的完整列表。

$(document.forms[0]).submit(function(event){ 
     $('input[type=checkbox]').each(function(index) { //loop all checkboxes 
      $itm = $(this); 
      $allVals = $('input[name=' + $itm.attr('name') + '_allVals]').first(); 
      if ($allVals.length) {        //see if we have a hidden input 
       $allVals.val($allVals.val() 
        + ($allVals.val().length > 0 ? ',' : ' ') //add delemiter 
        + ($itm.is(':checked') ? $itm.val() : '')); //add value 
      } 
     }); 
    }); 

這樣,您將有類似你現在有什麼空的文本框控件選中框爲空值獲得的完整列表中Request.Form["Suppresision_allVals"]

+0

感謝這有幫助 – user3342812

+0

很高興幫助,您可以upvote它或標記爲答案 –