Включить JS в списке флажков ASP.NET Core - PullRequest
0 голосов
/ 12 июня 2019

В моем приложении ASP.NET Core я передаю свой список проверок.

На мой взгляд, я создал функцию javascript для выбора всех флажков и отмены выбора всех флажков.

Когдамои флажки установлены, я отправляю форму.Но в моем контроллере установлен любой флажок.

Спасибо за вашу помощь.

Функция Javascript

function selectAllCompta() {
 var items = document.getElementsByName('myCheckBox');
 var cb = document.getElementById('cbSelectAll');
 var txt = document.getElementById('txtCb');

 if (cb.checked) {
    for (var i = 0; i < items.length; i++) {
        if (items[i].type == 'checkbox')
            items[i].checked = true;
    }
    txt.textContent = 'Déselectionner tout';
 }
 else {
    for (var i = 0; i < items.length; i++) {
        if (items[i].type == 'checkbox')
            items[i].checked = false;
    }
    txt.textContent = 'Sélectionner tout';
 }
}

View.cshtml

 <input class="form-control" type="checkbox" id="cbSelectAll" 
 onclick='selectAllCompta()' />
 <h4 id="txtCb">Sélectionner tout</h4>
 <input asp-for="CBC[i].Selected" name="myCheckBox" type="checkbox" 
 class="form-control" />

1 Ответ

1 голос
/ 13 июня 2019

Так как я не знаю вашу модель представления и html-разметку, приведенный ниже код предназначен для вашей справки:

Model:

public class MyViewModel
{
    public List<Item> CBC { get; set; }
}

public class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool Selected { get; set; }
}

Html-разметка:

<form asp-action="GetValue" asp-controller="Home" method="post">
    <input class="form-control" type="checkbox" id="cbSelectAll"
        onclick='selectAllCompta()' />
    <h4 id="txtCb">Sélectionner tout</h4>
    <ul>
        @for (var i = 0; i < Model.CBC.Count; i++)
        {
            <li>
                <input type="checkbox" asp-for="@Model.CBC[i].Selected" />
                <label asp-for="@Model.CBC[i].Selected">@Model.CBC[i].Name</label>
                <input type="hidden" asp-for="@Model.CBC[i].Id" />
                <input type="hidden" asp-for="@Model.CBC[i].Name" />
            </li>
        }
    </ul>

    <button type="submit" name="submit">submit</button>
</form>


@section Scripts { 

    <script>
        function selectAllCompta() {

            if ($("#cbSelectAll").is(":checked")) {
                $("ul input[type='checkbox']").prop('checked', true);
                $("#txtCb").val("Déselectionner tout");
            }
            else {
                $("ul input[type='checkbox']").prop('checked', false);
                $("#txtCb").val("Sélectionner tout");
            }

        }
    </script>
}

Чтобы после публикации на стороне сервера с помощью кнопки отправки вы получили значение:

public IActionResult GetValue(MyViewModel myViewModel) {
    ....
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...