Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp用于选择标记[在JS中]中的值列表_Javascript_Asp.net Mvc_Asp.net Core - Fatal编程技术网

Javascript asp用于选择标记[在JS中]中的值列表

Javascript asp用于选择标记[在JS中]中的值列表,javascript,asp.net-mvc,asp.net-core,Javascript,Asp.net Mvc,Asp.net Core,如何从javascript中创建的一些select标记中获取值? 问题是标签的数量不是固定的。 我尝试对使用select.tagName而不是asp,但无法将其映射到列表属性 这个函数的作用很简单,就是为酒店房间的客户创建选择标签。每个选择标记中都有所有客户端名称作为选项 这是我的财产: public List<int> ClientsIDs { get; set; } 以下是我创建的选择标签: <script type="text/javascript"

如何从javascript中创建的一些select标记中获取值? 问题是标签的数量不是固定的。 我尝试对使用select.tagName而不是asp,但无法将其映射到列表属性

这个函数的作用很简单,就是为酒店房间的客户创建选择标签。每个选择标记中都有所有客户端名称作为选项

这是我的财产:

public List<int> ClientsIDs { get; set; }
以下是我创建的选择标签:

<script type="text/javascript" charset="UTF-8">
window.onload = changeFunc;
function changeFunc() {
    var elements = document.getElementsByClassName('selector2');
    while (elements.length > 0) {
        elements[0].parentNode.removeChild(elements[0]);
    }
    var selector = document.getElementById('selector');
    var selectedValue = selector.value;
    console.log(selectedValue);
    @foreach (var item in Model.Rooms)
    {
            <text>
            if (@item.RoomID == selectedValue)
            {
                var selectedValue2 = @item.Capacity;
            }
            </text>
    }
    var inputContainer = document.getElementById('for-input');
    for (var i = 0; i < selectedValue2; i++)
    {
        var selector2 = inputContainer.appendChild(document.createElement("select"));
        selector2.className = "selector2";
        var option1 = document.createElement("option");
        option1.value = "null";
        option1.text = "Избери клиент";
        option1.defaultSelected = true;
        selector2.appendChild(option1);
        selector2.tagName = "ClientsIDs";
        @foreach (var item in Model.Clients)
        {
            <text>
                var optionz = document.createElement("option");
                optionz.tagName = "ClientsIDs";
                optionz.value = @item.ID;
                optionz.text = he.decode("@item.Name");
                selector2.appendChild(optionz);
            </text>
        }
    }
}
selectedValue2是从另一个select标记中获取的值。 我现在如何从选择标记中获取数据并将其放入列表中? 更新: 添加了从主选择器创建其他选择器的代码:

    <select asp-for="Reservations2.RoomId" onchange="changeFunc();" class="form-select" id="selector">
    @foreach (var item in Model.Rooms)
    {
        <option value="@item.RoomID">Стая @item.RoomID с капацитет @item.Capacity</option>
    }
</select>
像这样的

<div id="for-input">
    <select>
        <option value="0">--select--</option>
        <option value="1">A</option>
        <option value="2">B</option>
        <option value="3">C</option>
        <option value="4">D</option>
    </select>
</div>

@section scripts{
    <script>
        $(function () {
            var clientIds = [];
            $("#for-input select option").each(function () {
                clientIds.push($(this).val());
            })
            console.log(clientIds)
        })
    </script>
}
输出:


我现在如何从选择标记中获取数据并将其放入列表中?从哪个选项和到哪个列表?也许你可以提供一些html代码来帮助重现这个问题?这是我从html中获得的全部代码:这只是选择标记的容器。我认为解决方案不需要更多的代码。我只需要从选择标签中获取数据并将其添加到列表中。包含从选择标记获取的所有ID的属性将是ClientsIDs,即我在^^^^之前显示的属性。在我的示例中尝试此操作时:$for input select option.eachfunction{@Model.Reservations2.ClientsIDs.push$this.val;}我收到以下错误:System.NullReferenceException:“对象引用未设置为对象的实例”。@Model.Reservations2.ClientsIDs这是c代码服务端,在加载页面时已呈现该端,您不能在js functionclient端对其进行更改。您需要向后端发送更改数据的请求。当用户单击按钮时,我只需要获取一次数据,但问题是用户可以通过从选择标记中选择一个值来随时更改值。我不希望每次用户选择一个值时都更改该值,但仅在最后提交表单时更改。我想在JS中使用这段代码的另一种方法:但同时将所有这些值放在一个列表中。因此,我可以假设有两个选择,在您从第一个选择中选择一些值并将其提交到后端后,ClientSid会保留这些值,然后要将ClientsIDs中的值作为选项呈现给第二个选择?