簡體   English   中英

頁面加載時 jQuery 單選按鈕值不會改變

[英]jQuery radio button value is not changed on page load

我在網上搜索並嘗試了來自 SO 的類似問題的所有解決方案,但無法讓這個解決方案起作用。

我在 Django 管理員中工作,我有RadioSelect用於is_valid字段的is_valid小部件, is_valid中有兩個單選按鈕:

 <div class="form-row field-is_valid">       
    <div>           
        <label for="id_is_valid_0">Is it valid?</label>
                        
        <ul id="id_is_valid" class="inline">
            <li><label for="id_is_valid_0"><input type="radio" name="is_valid" value="True" id="id_is_valid_0" checked>
                    Yes
                </label>
            </li>
            <li><label for="id_is_valid_1"><input type="radio" name="is_valid" value="False" id="id_is_valid_1">
                    No
                </label>
            </li>
        </ul>   
    </div>      
</div>

<div class="form-row field-not_valid_reason">
    <div>
        <label for="id_not_valid_reason">Reason:</label>
        <select name="not_valid_reason" id="id_not_valid_reason">
          <option value="" selected>Choose</option>
          <option value="Expired">Expired</option>
          <option value="Not adopted">Not adopted</option>
          <option value="Unknown">Unknown</option>
        </select>             
    </div>
</div>

我想在.field-not_valid_reason “是”( True )時隱藏類.field-not_valid_reason (這是is_valid字段的默認值),並在單擊“否”時顯示它。 這是我實現的。 這是我的 jQuery 代碼:

 (function($) {
    $(function() {
        var isValid = $('input[type=radio][name=is_valid]'),
            notValidReason = $('.field-not_valid_reason'),


            function toggleFields(value) {
                if (value === 'True') {
                    notValidReason.hide(250);
                } else {
                    notValidReason.show(250);
                }
            }

        // show/hide on load based on previous value of isValid
        toggleFields(isValid.val());

        // show/hide on change
        isValid.change(function() {
            toggleFields($(this).val());
            alert(isValid.val());
        });
    });
})(django.jQuery);

但是,出於某種原因,在對象以is_valid字段為 False 保存在數據庫中后,當我在該對象的更改頁面上時,類.field-not_valid_reason被隱藏,盡管活動單選按鈕設置為“否” ( False )。 你能幫忙嗎?

在您當前的jquery代碼中,您在哪里使用alert(isValid.val()); 查看選擇了哪個選項,但這只會為您提供第一個值,以便獲取用戶選擇使用$(this).val()當前值。

然后,加載你在哪里獲得正確的radio值但 div 仍然隱藏,因為你再次傳遞toggleFields(isValid.val()); 這只會給你第一個值。所以,為了克服這個被checked傳遞radio值,即: $("input[name='is_valid']:checked").val()

暫無
暫無

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

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