簡體   English   中英

禁用時如何發布復選框值

[英]How to post checkbox value when disabled

我試圖將readonly屬性設置為復選框,但是它允許用戶選中/取消選中該字段。

后來我嘗試將禁用禁用,以防止用戶選中/取消選中。

但是當我嘗試提交表單時,具有不平衡值的復選框沒有傳遞給MVC控制器。

我嘗試放置隱藏值,並嘗試在更改時設置值,但無法將值傳遞給控制器​​。

這是我的代碼:

  <div  style="width:200px">@Html.CheckBoxFor(m => m.In, new { id = "cbIn", style = "vertical-align:middle;", data_bind = "checked:In,disable:useSettings" })</div>
   @Html.HiddenFor(m=>m.In,new { id = "hiddenIn" })

jQuery代碼:

 $("#hiddenIn").val(data.In);

function SaveSettings() {
        try {

            var saveSettingsUrl = "/Settings/SaveSettings";
            var serializedForm = $("input,select").serialize();

            $.ajax({
                type: 'POST',
                url: saveSettingsUrl,
                async: true,
                data: serializedForm,
                success: function (data, textStatus, request) {

                    data = null;

                },
                error: function (request, status, error) {
                    handleException(request.responseText);
                }
            });
        }
        catch (error) {
            showExceptionWindow('Jquery Error:' + error);
        }
    }

我如何發送復選框值,即使在表單發布中將其禁用也是如此。

您已經有了隱藏的輸入:

@Html.HiddenFor(m=>m.In,new { id = "hiddenIn" })

那應該通過禁用復選框的值。


沒有隱藏輸入的解決方案,您可以在從表單中獲取元素值之前刪除disabled屬性:

$("input:checkbox").prop('disabled', false);
//Then get the data
var serializedForm = $("input,select").serialize();

希望這可以幫助。

您可以這樣使用,因此使用不能更改復選框的狀態,並且只需添加onclick="return false;"也可以從復選框中獲取價值onclick="return false;"

 <input type="checkbox" checked onclick="return false;" onkeydown="return false;"/> 

用你的剃刀語法是

@Html.CheckBoxFor(m => m.In, new { id = "cbIn", style = "vertical-align:middle;", data_bind = "checked:In,disable:useSettings", onclick="return false;"})

暫無
暫無

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

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