チェックボックスクリックイベントでコンマを使用して値をhdnfield値に連結する方法。チェックボックスをクリックすると、注文を選択してJS関数に渡します。3つのチェックボックスを選択した場合、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);}
上記のコードは機能していません。最初のチェックボックスをクリックすると、最初のordidが表示されますが、2番目のチェックボックスをクリックすると、すでに割り当てられている最初のordidが表示されません。そのちょうど2番目のものを示しています...
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(',');