如何使用複選框單擊事件的逗號將值連接到hdnfield值。當我點擊複選框時,我選擇順序並通過JS函數。如果我選擇了三個複選框,那麼hdnfield的值應該是1,2,3 ......類似的東西......怎麼做?將值連接到隱藏變量
if (chkBoxOne != null)
{
chkBoxOne.Attributes.Add("onclick", "javascript:return SelectOne('" + chkBoxOne.ClientID + "','" + e.Row.ClientID + "','" + lblorderId.Text + "')");
//if (chkBoxOne.Checked)
// hdSelectAllOrderId.Value += ((Label)e.Row.FindControl("lblorderId")).Text + ",";
}
function SelectOne(id, rowID, OrderID) {
var AllOrderIDs = 0;
AllOrderIDs = Number(document.getElementById('ctl00_PagePlaceholder_hdSelectAllOrderId').value);
alert(AllOrderIDs);
if (document.getElementById(id).checked == true) {
if (AllOrderIDs == '')
AllOrderIDs = OrderID;
else
AllOrderIDs = AllOrderIDs + ' ,' + OrderID;
}
alert(AllOrderIDs);}
上述代碼無法正常工作。當我點擊firt複選框顯示首先ordid,但是當我點擊第二個不顯示第一個ordid,這是我已經分配給它。它只是顯示第二個......
var AllOrderIDs = 0;
AllOrderIDs = document.getElementById('ctl00_PagePlaceholder_hdSelectAllOrderId').value;
var IDs = AllOrderIDs.split(',');
if (document.getElementById(id).checked == true) {
if (IDs.indexOf(OrderID) == -1) {
IDs.push(OrderID);
}
}
else {
var index = IDs.indexOf(OrderID);
if (index != -1) {
IDs = IDs.slice(index, 1);
}
}
AllOrderIDs = IDs.join(',');
我得到的錯誤行李像對象不支持此方法或屬性..在IDs.push(OrderID); – Philly
那麼你可能做錯了什麼。確保AllOrderIDs是一個字符串,而不是數字。不要將其轉換爲數字。 –
請參閱修改後的帖子..那就是我正在做的... – Philly