在我的网络表单中,我动态生成多个复选框。因此他们不在控制之中。我试图使用Request.Form [name]获取值,但它不正确
<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 :(得分:1)
如果您绝对需要获取动态添加的所有复选框控件的列表,则可以在提交表单时将它们组合成隐藏的输入。
您需要为每个添加的复选框添加一个隐藏输入,其名称如name =&#34; [复选框名称] _allValues&#34;
<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"]
中的完整列表,其中未选中框的空白值与现在的空文本框控件类似。
答案 1 :(得分:0)
三个复选框具有相同的名称属性值。您应该有不同之处,以确保它们可以与服务器端的请求表单分开阅读。此外,如果是复选框,则应检查属性。希望这会为你提供正确的方向。
<input type="checkbox" name="Suppresision1" checked="checked" />
<input type="checkbox" name="Suppresision2" checked="" />
<input type="checkbox" name="Suppresision3" checked="" />
答案 2 :(得分: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()
});
});