0

我正在构建座位地图(座位预订系统,如在线剧院座位预订),我想获得选定的座位。我可以根据 CSS 类获取选定的座位并将其存储在 var 中,但我无法将该对象转换为字符串以传递给后面的代码。现在,当我通过隐藏字段时,我得到 [object object] 结果。我怎样才能做到这一点?

这是jQuery代码

 $(function () {
    //When an available seat is clicked on
    $('.seat.available').click(function () {
        //Toggle selection for this seat
        $(this).toggleClass('selected');
    });

    //When "Purchase" button is clicked
    $("#Purchase").click(function () {
        //Grab the selected seats
        var selectedSeat = $(".seat.selected").toArray();

        var selected = $(".seat.selected");
        if (selected.length == 0) {
            alert("No seats were selected.");
        }
        else {
            alert(selected.length + ' seats were selected.');

        }
        $('#hdCountrID').val(selectedSeat);//giving value to hidden field
    });
});

现在这被传递到一个隐藏字段,我使用以下内容从中提取数据

var elem =hdCountrID.Value;
Label1.Text = "selected seat is" + elem;//used a label to display value

但这显示“选定的座位是 [object object]。

我该怎么做才能将该对象转换为字符串,因为我必须将其发送到数据库。
编辑:Div 标签包含在转发器中,后面的代码中有一个 PoCo 类,该类作为源绑定到该转发器

4

1 回答 1

0

selectedSeat 是一个数组,因此 [object object]

您可以将其设置为数组中的一项

$('#hdCountrID').val(selectedSeat[0]);

或者您可以将它们全部连接成某种形式的字符串,您可以在后面拆分。

像这样

$('#hdCountrID').val(selectedSeat.join(","))

然后:

var elem = hdCountrID.Value.Split(',');

然后,您将在后面的代码中有一个数组。

未经测试,但理论应该是合理的。

编辑:对不起,我认为它有点复杂。您想获取复选框项目的值。不是吗?因此,您需要首先从所有选定的值中创建一个字符串。我会考虑在 $('.seat.selected') 上使用每个循环来将 $(this).val() 输出到逗号分隔的字符串中

编辑:

此代码用于使用逗号分隔字符串中的值设置隐藏字段。

<script type="text/javascript">
    $(function () {
        //When an available seat is clicked on
        $('.available').click(function () {
            //Toggle selection for this seat
            $(this).toggleClass('selected');
        });

        //When "Purchase" button is clicked
        $("#Purchase").click(function () {
            //Grab the selected seats

            var selectedItemIdString = "";

            $(".selected").each(function (index) {
                selectedItemIdString += $(this).attr("data-id") + ",";
            });
            $('#hdCountrID').val(selectedItemIdString);

        });
    });
</script>

<input type="hidden" id="hdCountrID" name="hdCountrID" />
<div class="seat available" data-id="1">
    Seat 1
</div>
<div class="seat available" data-id="2">
    Seat 2
</div>

<div id="Purchase">Purchase</div>

然后在后面的代码中像这样拆分字符串

string[] SplitIds = hdCountrID.Value.Split(',', StringSplitOptions.RemoveEmptyEntries);

foreach(var sId in SplitIds)
{
    // quick way to get it as in int. but not the safest int i = int.Parse(sId);
}
于 2013-10-01T20:00:49.277 回答