2011-08-25 123 views
3

我在jsp頁面中有一個帶日期選擇器(jQuery)的字段。DatePicker清除問題

樣品(的DatePicker)

http://jqueryui.com/demos/datepicker/#icon-trigger

頁也有一個「清除」按鈕的功能,這將清除從所選擇的一個頁上的所有文本字段和插入在這些領域包括日期的文本日期選擇器。

清除按鈕代碼

<input type="button" name="buttonclear" id="buttonclear" class="buttonstyle_mid" value="Clear" 
    onclick="javascript:clearData();" /> 

的javascript clearData()碼(對於日期字段)

document.getElementById("DateId").value = ""; 

日期字段代碼

<form:input id="DateId" path="date" class="dateInput" size="11" maxlength="10" readonly="true" /> 

的jQuery的DatePicker代碼

<script type="text/javascript"> 
     jQuery(function($) { 
      $('.dateInput').datePicker(); 
      }); 
      $('#DateId').datePicker({ 
       startDate : '01/01/1970', 
       endDate : (new Date()).asString() 
      });  
    $('#DateId').bind('dpClosed', function(e, selectedDates) { 
       var d = selectedDates[0]; 
       if (d) { 
        d = new Date(d); 
        $('#DateId1').dpSetStartDate(d.addDays(1).asString()); 
       } 
      }); 
      $('#DateId1').bind('dpClosed', function(e, selectedDates) { 
       var d = selectedDates[0]; 
       if (d) { 
        d = new Date(d); 
        $('#DateId').dpSetEndDate(d.addDays(-1).asString()); 
       } 
      }); 
</script> 

我的代碼中有一大缺憾。如果我從日期選擇器中選擇八月一日,2011年,然後單擊「清除」按鈕。日期字段被清除,但我不能再選擇同一日期(即八月一日,2011年)。

清除按鈕,僅清除字段中的值,但它沒有明確的日期在底層的DatePicker

我用Google搜索對這個問題有很多,但找不到對這個問題得到妥善解決。任何幫助真的會被讚賞。

感謝

+1

+1格式化您的問題的偉大工作! –

回答

3

我認爲你需要添加下面你clearData()功能:

$('.dateInput').datepicker("setDate" , null); 

這會取消日期選取器選擇的值。通過簡單地清除文本字段值,日期選取器不會更新,因此它與文本字段值不同步。

+0

感謝JJ的回覆。真的很感謝:) 我確實按照你的建議。但它沒有解決。 :( –

+0

哎呀!我有.datepicker()在那裏兩次...你有沒有抓住?如果不嘗試修改的方式。 –

+0

我確實抓住了:),嘗試了兩種方式。沒有運氣:( 正確,如果我在這裏做任何錯誤。請原諒我的糟糕的編程。新的jQuery) function clearData(){ document.getElementById(「startDate」)。value =「」; $('。dateInput')。datePicker(「setDate」,null); } –

0

這一個對我有用: $('。dateInput')。datePicker()。dpSetSelected(null,true,false);