簡體   English   中英

頁面加載時如何根據單選按鈕值顯示/隱藏 div

[英]How can show/hide div based on radio button value when Page Load

我有這個 JQuery 代碼如何在表單加載時使其工作,目前它僅適用於單選按鈕單擊

我有這個單選按鈕

 <div class="m-b">
   <label class="form-check-inline p-l-md m-l-0 m-r-md">
     @Html.RadioButtonFor(model => model.RangeType, "true", new { @name = "projectrange" })
  <div class="check-icon-radio"><i></i></div>Range
    </label>
    <label class="form-check-inline p-l-md m-l-0 m-r-md">
       @Html.RadioButtonFor(model => model.RangeType, "false", new { @name = "projectrange" })
    <div class="check-icon-radio"><i></i></div>Single Code
      </label>
   </div>

我試過這個 jquery 但是我在頁面加載時沒有得到單選按鈕值,當單選點擊時它工作得很好,我怎樣才能讓它得到div model => model.RangeType,的值。

  $(window).load(function () {
        $("input[name$='RangeType']").click(function () {
            if ($(this).is(':checked') && $(this).attr("value") == "true") {
                $('#singleCode').hide();
                $('#projectRange').show();
            }
            if ($(this).is(':checked') && $(this).attr("value") == "false") {
                $('#projectRange').hide();
                $('#singleCode').show();
            }
        });
    });

您只是在 onClick 處理程序中制作 div 顯示/隱藏,因此它只會在單擊時觸發,相反您還需要在頁面加載時調用相同的邏輯
我在 function 中分離了顯示/隱藏邏輯,因此您可以隨時調用它
我在這里寫了一些虛擬代碼試試這個。 我也使用了 else 而不是另一個if或者你也可以使用另一個 if

$(window).load(function () {
        $("input[name$='RangeType']").click(toggleDiv());

        function toggleDiv(){
            var radio = "input[name$='RangeType']";
            if ($(radio).is(':checked') && $(radio).attr("value") == "true") {
                $('#singleCode').hide();
                $('#projectRange').show();
            }else{
                $('#projectRange').hide();
                $('#singleCode').show();
            }
        }

       toggleDiv();
});

這是一個演示,它使用$(function(){})而不是$(window).load

看法:

<div class="m-b">
    <label class="form-check-inline p-l-md m-l-0 m-r-md">
        @Html.RadioButtonFor(model => model.RangeType, "true", new { @name = "projectrange" })
        <div class="check-icon-radio"><i></i></div>Range
    </label>
    <label class="form-check-inline p-l-md m-l-0 m-r-md">
        @Html.RadioButtonFor(model => model.RangeType, "false", new { @name = "projectrange" })
        <div class="check-icon-radio"><i></i></div>Single Code
    </label>
    <div id="singleCode">
        singleCode
    </div>
    <div id="projectRange">
        projectRange
    </div>
</div>
@section scripts{ 
<script type="text/javascript">
    $(function () {

        var radio = "input[name$='RangeType']";
        console.log($(radio).attr("value"));
        if ($(radio).is(':checked') && $(radio).attr("value") == "true") {
            $('#singleCode').hide();
            $('#projectRange').show();
        }
        if ($(radio).is(':checked') && $(radio).attr("value") == "false") {
            $('#projectRange').hide();
            $('#singleCode').show();
        }
    })
</script>

Controller:

public IActionResult TestRadioButton() {
        TestRadio test = new TestRadio { RangeType = "true" };
        return View(test);
    }

結果: 在此處輸入圖像描述

頁面加載后,如果要根據單選按鈕值顯示/隱藏 div,首先需要獲取選中的單選按鈕,然后根據值顯示或隱藏 div。 嘗試使用以下代碼:

<div class="m-b">
    <label class="form-check-inline p-l-md m-l-0 m-r-md">
        @Html.RadioButtonFor(model => model.RangeType, "true", new { @name = "projectrange" })
        <div class="check-icon-radio"><i></i></div>Range
    </label>
    <label class="form-check-inline p-l-md m-l-0 m-r-md">
        @Html.RadioButtonFor(model => model.RangeType, "false", new { @name = "projectrange" })
        <div class="check-icon-radio"><i></i></div>Single Code
    </label>
</div>

<div id="singleCode" >
    singleCode Div
</div>
<div id="projectRange">
    projectRange Div
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
    $(window).load(function () {
        $("input[name$='RangeType']").click(function () {
            if ($(this).is(':checked') && $(this).attr("value") == "true") {
                $('#singleCode').hide();
                $('#projectRange').show();
            }
            if ($(this).is(':checked') && $(this).attr("value") == "false") {
                $('#projectRange').hide();
                $('#singleCode').show();
            }
        });

        //after page load, based on the checked radio button to show/hide div.
        if ($("input[name$='RangeType']:checked").val() =="true") {
            $('#singleCode').hide();
            $('#projectRange').show();
        } else {
            $('#projectRange').hide();
            $('#singleCode').show();
        }
    });
</script>

output:

在此處輸入圖像描述

暫無
暫無

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

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