2012-10-11 105 views
3

我在我的PHP站點中使用jQuery jTable來顯示錶並向表中添加記錄/修改記錄。如何將timepicker添加到jQuery jtable?

我有幾個有時間值的字段。不幸的是,jTable只支持日期選擇器,而不是時間選擇器。任何人都可以建議如何將jQuery timepicker添加到jTable?

我試圖在主JTable.js文件中添加一些JQuery時間選取器。但我認爲我錯誤地添加了。由於我是新來的jQuery,我無法弄清楚如何添加JQuery的時間選擇器插件

<div id="ShiftTableContainer" style="width: 600px;"></div> 
    <script type="text/javascript"> 

     $(document).ready(function() { 

      //Prepare jTable 
      $('#ShiftTableContainer').jtable({ 
       title: 'Shift', 
       actions: { 
        listAction: '../m/ShiftActions.php?action=list', 
        createAction: '../m/ShiftActions.php?action=create', 
        updateAction: '../m/ShiftActions.php?action=update', 
        deleteAction: '../m/ShiftActions.php?action=delete' 
       }, 
       fields: { 
        id: { 
         title: 'Shift Id', 
         width: '25%' 
        }, 
        name: { 
         title: 'Shift Name', 
         width: '40%' 
        }, 
        start_time: { 
         title: 'Start Time', 
         width: '75%', 
         input: function (data) { 
           var dt = data.record ? data.record.start_time : NULL; 
           return '<input type="text" style="width:200px" value="' + dt + '" />'; 
          } 
         inputClass: 'timepicker' 
        }, 

        end_time: { 
         title: 'End Time', 
         width: '75%', 

         //options: { '1': '101', '2': '102' } 
        }, 
        description: { 
         title: 'Description', 
         width: '75%' 
        }, 
        color: { 
         title: 'Color', 
         width: '75%', 
         //options: { '1': '101', '2': '102' } 
        }, 
        break_schedule: { 
         title: 'Break Schedule', 
         width: '75%', 
        } 
       } 

      }); 

      $('#ShiftTableContainer').jtable('load'); 
     }); 



    </script> 
      <script> 
      $(function(){ 
        $("input.timepicker").datetimepicker(); 
       });  

    </script> 
+0

腳本的順序很重要。確保你先添加jquery庫。然後,必須在document.ready函數內調用timepicker代碼。使用Firefox的錯誤控制檯查看是否有任何javascript錯誤。 – Stefan

回答

1

我想這樣和它的工作的罰款。我更新了JQuery和JQuery UI到最新版本。與我使用的timepicker插件一起導入到我的php中。我在我的代碼中做了一些修改。這是工作代碼。

 <script type="text/javascript"> 

     $(document).ready(function() { 

      //Prepare jTable 
      $('#ShiftTableContainer').jtable({ 
       title: 'Shift', 
       actions: { 
        listAction: '../m/ShiftActions.php?action=list', 
        createAction: '../m/ShiftActions.php?action=create', 
        updateAction: '../m/ShiftActions.php?action=update', 
        deleteAction: '../m/ShiftActions.php?action=delete' 
       }, 
       fields: { 
        id: { 
         key: true, 
         edit: false, 
         title: 'Shift Id', 
         width: '25%' 
        }, 
        name: { 
         title: 'Shift Name', 
         width: '40%' 
        }, 
        start_time: { 
         title: 'Start Time', 
         width: '75%' 
        }, 

        end_time: { 
         title: 'End Time', 
         width: '75%' 
        }, 
        description: { 
         title: 'Description', 
         width: '75%' 
        }, 
        color: { 
         title: 'Color', 
         width: '75%', 
         //options: { '1': '101', '2': '102' } 
        }, 
        break_schedule: { 
         title: 'Break Schedule', 
         width: '75%', 
        } 
       }, 
       formCreated: function (event, data) 
       { 
        var $input_start_time = data.form.find ('input[name="start_time"]'); 
        $input_start_time.addClass("time"); 
        $input_start_time.timepicker(); 

        var $input_end_time = data.form.find ('input[name="end_time"]'); 
        $input_end_time.addClass("time"); 
        $input_end_time.timepicker(); 

       } 
      }); 

      $('#ShiftTableContainer').jtable('load'); 

     }); 



    </script> 
+0

仍然不會呈現給我,仍然只是一個普通的文本字段。 –

0

使用Timepicker插件,我還沒有測試,但這個插件一個timepicker添加到jQueryUI的日期選擇器。

http://trentrichardson.com/examples/timepicker/

+0

我試過它的人。它的工作原理是當我在頁面中添加一個輸入字段,但它不適合我時,在表單內。我必須修改他們的jtable文件。但我認爲我錯誤地添加了腳本。我是jquery的新手。 – Allen

0

使用 「輸入」 欄(見http://www.jtable.org/ApiReference)爲dateTimePicker的。將dateTimepicker綁定到您用於時間的每個文本輸入,如下所示:

給所有時間輸入相同的類(例如「timepicker」) - 請參閱上面api參考中的'inputClass'選項 - 然後扎timepicker這樣的:

$(function(){ 
    $("input.timepicker").datetimepicker(); 
}); 

記住添加dateTimePicker script,並且還jQuery的以及jQuery用戶界面之前(用戶接口)庫。

EDIT響應於評價:

設置上述timepicker代碼 JTable的代碼的。對JTable,嘗試這樣的事情:

Time: { 
    title: 'Start Time', 
    input: function (data) { 
       var dt = data.record ? data.record.Time : ''; 
       return '<input type="text" style="width:200px" value="' + dt + '" />'; 
      } 
    inputClass: 'timepicker', 
etc. 
+0

我想在字段部分添加這個嗎?像這樣的例子?'START_TIME:{ \t \t \t \t \t \t \t標題: '開始時間', \t \t \t \t \t \t \t寬度:'75%」, \t \t \t \t \t \t \t輸入:$(函數(){ \t \t \t \t \t \t \t \t \t $(「start_time.timepicker」)。datetimepicker(); \t \t \t \t \t \t \t \t \t}); \t \t \t \t \t \t}' – Allen

+0

@Allen:不,這是行不通的。請參閱編輯我的POST。 – Stefan

+0

注意:當您選擇要被轉換的輸入元素時,您必須使用$(「input.timepicker」)或$(「。timepicker」)'。 – Stefan