2016-03-04 52 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它或标记为答案 –