簡體   English   中英

每次創建新帖子時,如何取消選中自定義元框中的復選框值?

[英]How to uncheck checkbox values in custom meta-box each time a new post is created?

我正在創建一個WordPress插件,並且有一個包含一些復選框的自定義元框。 現在,即使在頁面刷新后,我也想保存這些復選框的狀態,因此我要這樣做:

<script type="text/javascript">
(function() {
    var boxes = document.querySelectorAll("input[name='my_meta_box_check[]']");
    for (var i = 0; i < boxes.length; i++) {
        var box = boxes[i];
        if (box.hasAttribute("value")) {
            setupBox(box);
        }
    }

    function setupBox(box) {
        var storageId = box.getAttribute("value");
        var oldVal    = localStorage.getItem(storageId);
        box.checked = oldVal === "true" ? true : false;

        box.addEventListener("change", function() {
            localStorage.setItem(storageId, this.checked);
        }); 
    }
})();
</script>

而且有效。 但是,發生的事情是,每當創建新帖子時,都將使用上一個帖子中的舊值來選中復選框。 首次創建帖子時,如何刷新或取消選中所有復選框? 如果發布狀態尚未發布,我還嘗試從數據庫中刪除發布元,例如:

if(get_post_status($post->ID)==='publish'){
    echo "<b>"."Post is published!"."</b></br>";
}
else
{
    global $wpdb;   
    global $post;
    echo "<b>"."Post is not published!"."</b></br>";    
    $wpdb->query("DELETE from wp_postmeta where post_id LIKE '$post->ID' AND meta_key='my_meta_box_check'");  

}

它執行查詢,但是復選框已使用前一帖子中的值進行了檢查。

提交信息后,您需要清除本地存儲空間。

如果要刪除/清除本地存儲中所有不使用的值

localStorage.clear();

而且,如果您要從本地存儲中刪除特定項目,則可以使用以下代碼

localStorage.removeItem(key);

暫無
暫無

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

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