簡體   English   中英

一個復選框可禁用某些CheckBoxFor

[英]One checkbox to disable some CheckBoxFor

我正在開發MVC程序。

我在View中使用Razor語言來顯示帶有CheckBoxFor的項目列表(從數據庫通過Controller / Model):

for (int i = 0; i < Model.ProjectList.Count; i++)
    {
        @Html.HiddenFor(m => m.ProjectList[i].Id)
        <li>@Html.CheckBoxFor(m => m.ProjectList[i].IsChecked,
        new { id = "projectList_" + i, className = "CheckBoxProject" }) 
        @Model.ProjectList[i].Name</li>
    }

這部分工作正常。

我想添加另一個CheckBox來取消選中並禁用以前的ChekBoxFor,並阻止對其進行檢查。 我試圖通過在視圖末尾放置一些JavaScript來做到這一點:

<input type="checkbox" id="SetBox" value="SetBox" onclick="CheckBoxState(this);">

<script type="text/javascript" onload="loaded=1">
function CheckBoxState(elementRef) {
        document.querySelectorAll('.CheckBoxProject').checked = false;
        document.querySelectorAll('.CheckBoxProject').disabled = true;
};

因此,如果我了解自己已完成的工作,則“ onclick”應調用名為“ CheckBoxState”的Javascript函數。 然后獲取所有具有className CheckBoxProject的CheckBoxFor ,取消選中並禁用它們。

當我在Firefox中嘗試時,當我檢查最后一個CheckBox並且頁面檢查器顯示類似(不是英語)的警告時,沒有任何反應: 無法加載源為“ http:// localhost :. ”的腳本。 ../browserLink

我不確定如何告訴View我正在使用Javascript,以及Razor語言是否可以使用Javascript

我嘗試了不同的方式來編寫JavaScript代碼,具體取決於我在StackOverflow上找到的內容,並且幾次失敗后我都辭職了……

最后,我發現了一些適用於jQuery的東西(我不知道):

<input type="checkbox" id="SetBox"> <label>Uncheck and disable other Checkbox</label>

<script type="text/javascript">

// Call function when the element with the id = SetBox is clicked
$('#SetBox').click(function(){

    var SetBox = document.getElementById("SetBox");

    if (SetBox.checked)
    {
        // select all checkbox (even SetBox) and unchecked + disabled them
        $('input:checkbox').prop('checked', false);
        $('input:checkbox').prop('disabled', true);

        // select only SetBox and check + enable it.
        $('#SetBox').prop('checked', true);
        $('#SetBox').prop('disabled', false);

    }
    else
    {
        // Make all checkbox available if SetBox is unchecked.
        $('input:checkbox').prop('disabled', false);
    }
});

它與Html.CheckBoxFor()一起使用。

我仍然有警告:無法加載源為“ http:// localhost:.... / browserLink ”的腳本,但似乎沒有關系。

希望以后可以對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM