2012-11-23 60 views
1

我猜測隨着Kendo論壇工作方式即將發生的變化(只有付費客戶),在那裏得到問題的答案几乎沒有機會,所以我會試試這裏。 ..帶4個小數位的NumericTextBox

我已經設置了一個可編輯的網格,它使用兩個數字字段的自定義驗證器。驗證器使用ajax查詢獲取有效參數(但我認爲這不重要)。

這是所有的工作,但我需要NumericTextBoxes支持4個小數位,他們不默認。

我已經爲這些字段創建了自定義的網格編輯器,這使我可以輸入4位小數,但它打破了自定義驗證。

如何獲取NumericTextBoxes在編輯模式下支持4位小數位並允許自定義驗證規則?

在此先感謝

這裏的字段定義,以驗證我使用:

end: { type: 'number', validation: { 
    end: function(input){ 
     if (input.attr('name')=='end' && $('input[name=lookup]').val()!=''){ 
      $.ajax({ 
       type: 'post', 
       url: '/ajax/lookupParams', 
       data: { lookup:$('input[name=lookup]').val(), csrf_token: token }, 
       success: function(data) { 
        start = data.start; 
        end = data.end 
       }, 
        dataType: 'json', 
        async: false 
       }); 
      input.attr('data-end-msg', 'End must be between '+start+' and '+end); 
      return (input.val() >= start && input.val() <= end); 
     } 
     return true; 
    } 
} 

該位工作 - AJAX是用來檢索有效的開始和結束值的基礎上,查找字段的當前值。如果我使用自定義編輯器來支持4個小數位,它就會停止工作。

+0

一些代碼可以幫助人們理解「自定義驗證」的含義。 –

+0

這就是爲什麼'$ .ajax'調用具有'async:false'的原因 - 函數在繼續之前等待'start'和'end'返回。就像我說的那樣 - 驗證工作是完美的,只是在與網格中的自定義編輯器結合使用時纔會生效。 – Mat

回答

6

KendoUI NumericTextBoxes支持4個十進制和驗證:

具有以下HTML:

<input id="num" value="123.456789" 
     data-format="n4" 
     data-decimals="4" 
     data-step="0.0001" 
     data-role="numerictextbox"/> 

和下面的初始化:

$("#num").kendoValidator({ 
    rules :{ 
     custom:function (input) { 
      var val = Math.floor(input.val() * 10000); 
      return val % 2; 
     } 
    }, 
    messages:{ 
     custom:"Your number * 10000 needs to be odd" 
    } 
}); 
kendo.init($("#num")); 

這定義了NumericTextBox與四位數字導向軸中可視化和編輯模式 - 並自定義Validator,檢查您的十進制數字的最後一位數字是od d。

順便說一下,歡迎來到KendoUI堆棧溢出!

+0

嗨Emiliano, 感謝您的提示,但我正在與一個Kendo網格,所以我無法以這種方式定義輸入字段。 我已經添加了上面使用的自定義驗證的示例。 – Mat