簡體   English   中英

防止收音機選擇與時間選擇重疊

[英]Prevent radio selections from overlapping time selections

我有一個帶有事件選擇的表格,這些是單選選項,其值可以像這樣保存日期和時間:

31年10月31日,星期四| 下午1:00-下午3:15

問題是,有幾個事件在時間上重疊,並且不允許填寫表格的用戶選擇重疊時間。 我需要完成的是,當發生時間重疊時,給彼此沖突的所有選項提供紅色背景。 我一直在嘗試使用jQuery,但無法提出解決方案。 到目前為止,我有這個:

所有單選選項都具有.time類

$(document).ready(function() {
    var map = {};
    $(".time").change(function() {
        var value = $(this).val();
        map[$(this).attr('name')] = value;
        $(".time").each(function() {
            if ($(this).is(':checked')) {
                time = $(this).val();
                tr = $(this).closest('tr');
                $.each(map, function(key, val) {
                    if (val == time) {
                        tr.addClass('red');
                    } else {
                        tr.removeClass('red');
                    }
                });
            }
        });
    });
});

上面的方法無法按我想要的方式工作,實際上,它根本無法按預期工作。 如果有人可以照亮我,我將不勝感激。

我相信這就是你想要的

<script type="text/javascript">
    $(".time").change(function() {
        var values = $("input.time").map(function(){
            return $(this).val();
        });
        values.each( function (){
            var overlapping = $("input.time[value='"+ this +"']");
            if (overlapping.filter(":checked").length > 1){                            
                overlapping.parents("tr").addClass("red");}
            else{
                overlapping.parents("tr").removeClass("red");
            }
        })
    });
</script>

它首先映射所有單選按鈕值,然后根據每個值的檢查計數添加/刪除相應的紅色類別。

http://jsfiddle.net/4rJTR/

暫無
暫無

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

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