2014-01-15 51 views
2

我在,我有我所用如何獲得在asp.net

DataTable dt = new Process_Hotels().SelectAllFacilty();   
if (dt.Rows.Count > 0)            
{                 
    cblHotelFacility.DataSource = dt;        
    cblHotelFacility.DataTextField = "Facility";     
    cblHotelFacility.DataValueField = "ID";      
    cblHotelFacility.DataBind();         

    foreach (ListItem li in cblHotelFacility.Items)    
    {                
     li.Attributes.Add("JSvalue", li.Value);     
    }                
} 

的約束,現在我希望得到一個CheckBoxList的一個asp.net項目工作使用javascript選擇CheckBoxList的物品價值使用我有以下按鈕點擊JavaScript代碼按鈕click.For的JavaScript的CheckBoxList的設定值ID:

<script type="text/javascript">                     

    function test() {                        
     var checkList1 = document.getElementById('<%= cblHotelFacility.ClientID %>');        
     var checkBoxList1 = checkList1.getElementsByTagName("input");            
     var checkBoxSelectedItems1 = new Array();                 

     for (var i = 0; i < checkBoxList1.length; i++) {               
      if (checkBoxList1[i].checked) {                  
       checkBoxSelectedItems1.push(checkBoxList1[i].value);            
       //alert('checked:' + checkBoxSelectedItems1.push(checkBoxList1[i].getAttribute("JSvalue")).value); 
       alert('checked - : ' + checkBoxList1[i].value)              
      }                          
     }                           
    }                            
</script> 

但在點擊按鈕的選擇CheckBoxList的正顯示出0我想選擇的CheckBoxList項目的識別。請幫忙。

+0

多少元素checkList1在那裏。我只會是一個 –

+0

可能有很多元素checkList1,如果我選擇多個項目的checkboxlist,那麼它顯示多次警報消息「on」而不是ID –

+0

試試這個:http://stackoverflow.com/questions/18924147/如何獲取選定的項目中的值在checkboxlist中與foreach在asp-net -c –

回答

14

試試這個:

<script type = "text/javascript"> 

function GetCheckBoxListValues(chkBoxID) 
{ 
    var chkBox = document.getElementById('<%= cblHotelFacility.ClientID %>'); 
    var options = chkBox.getElementsByTagName('input'); 
    var listOfSpans = chkBox.getElementsByTagName('span'); 
    for (var i = 0; i < options.length; i++) 
    { 
     if(options[i].checked) 
     { 
      alert(listOfSpans[i].attributes["JSvalue"].value); 
     } 
    } 
} 


</script> 
+0

它返回選定的項目文本,但我想要它的值 –

+0

我編輯了代碼。它現在工作嗎? – Plue

+0

是的,現在它工作正常。感謝 –

0

我在javascript

是新可這段代碼可以幫助您

function CheckBoxCheckOrNot(jobskill) { 
var c = document.getElementById(jobskill).getElementsByTagName('input'); 
for (var i = 0; i < c.length; i++) { 
    if (c[i].type == 'checkbox') { 

     if (c[i].checked) { 
      alert('checkbox checked'); 


     } 
     else { 
      alert('checkbox unchecked'); 
     } 
    } 


} 

}

注:jobskill是容器的id包含所有複選框。

0

嘗試調試

for (var i = 0; i < checkBoxList1.length; i++) { 
console.log(checkBoxList1[i]) 
      if (checkBoxList1[i].checked) { 
       checkBoxSelectedItems1.push(checkBoxList1[i].value); 
       //alert('checked:' + checkBoxSelectedItems1.push(checkBoxList1[i].getAttribute("JSvalue")).value); 
       alert('checked - : ' + checkBoxList1[i].value) 
      } 
     } 

檢查,看看ID的console.log()通過按下控制檯窗口F12爲您提供有關對象的任何信息。安裝Firefox的firebug插件。