簡體   English   中英

第一次單擊后如何禁用日歷的單擊?[解決方案編輯]

[英]how to disable clicking of calendar after first click?[edited for solution]

我在應用程序中使用DHTML日歷。 單擊日期后,有一個表單提交操作。

我想在第一次單擊后禁用日歷,以使用戶無法在提交表單之前單擊其他日期。

我的代碼是

<SCRIPT type="text/javascript">

function dateChanged(calendar) 
{
    // Beware that this function is called even if the end-user only
    // changed the month/year. In order to determine if a date was
    // clicked you can use the dateClicked property of the calendar:
    if (calendar.dateClicked) {
    // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
    var y = calendar.date.getFullYear();
    var m = calendar.date.getMonth() + 1; // integer, 0..11
    var d = calendar.date.getDate(); // integer, 1..31
    var NewDate = y + "-" + m + "-" + d;
    document.getElementById("<?=$mydata[FILTER]?>").value = NewDate;
    submitForm();
}




    var tempDate = new Date(<?=$CalDate?>);
    Calendar.setup({
            flat        : "<?=$mydata[FILTER]?>_show_date",     // ID of the parent element
            flatCallback:dateChanged,                                           // our callback function
            weekNumbers:false,                                              // Don't display week numbers
            date        : tempDate      
                    // Set calendar to start at selected date
        });

    document.getElementById("<?=$mydata[FILTER]?>").value = '<?=$mydata[FILTER]?>';

我為此解決了一個問題,我使用代碼禁用了div和div的所有子級

**var nodes = document.getElementById("13-1_show_date").getElementsByTagName('*');
for(var i = 0; i < nodes.length; i++)
{                                               
nodes[i].disabled = true;
}     
submitForm();**

第一次單擊后,此代碼將禁用div及其子級。

此問題是經典問題,並且有很多方法:

  1. 使用一個稱為isClciked的臨時變量,並在第一次單擊時將其設置為true,然后在隨后的單擊中對其進行檢查,如果為true,則只需return;
  2. 在首次執行點擊處理程序時,請禁用整個壓延機(這本身有很多方法)

暫無
暫無

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

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