我是新來的HTML5和Knockout.js我面臨的問題在日期時間本地控制。Html5的日期時間本地控制顯示不完整的日期
這裏是我使用
<script type="text/html" id="DATE.template">
<input type="datetime-local" data-bind="value: Prompt.CurrentValue, enable: Prompt.IsEnabled, valueUpdate: 'input'" />
</script>
這裏是保存按鈕的HTML日期時間控制和它綁定到savecommand到JavaScript文件。
<div class="buttons-wrapper">
<button class="button save-idoc-button" data-bind="command: SaveIdocCommand, activity:SaveIdocCommand.isExecuting">Save</button>
<button class="button cancel-save-button" data-bind="command: CancelIdocCommand, activity:CancelIdocCommand.isExecuting">Cancel</button>
</div>
當我在沒有輸入任何時間的情況下輸入日期時,日期在保存時傳遞爲空。我知道這是一個不完整的日期,因此瀏覽器認爲它是無效的日期,但輸入的日期不會被保存。所選日期綁定到Prompt.CurrentValue;當用戶輸入一個不完整的日期(沒有時間)時,prompt.currentvalue爲空,並且我在datetime控件上得到一個工具提示消息,「請輸入輸入的有效日期或日期不完整」。 (瀏覽器驗證,並提供我認爲)
什麼是最好的方法? a。我們是否需要提供自定義驗證並禁用SAVE按鈕,直到datetime-local控件具有有效值。如果是這樣,我們如何在html5/knockout.js中實現?
b。是否有辦法禁用瀏覽器驗證datetime-local控件,以便即使未輸入時間也可以傳遞日期。? (我嘗試使用「無效」,但它不起作用)
c。任何其他更好的方法?
編輯:
這裏是viewmodel驗證的計算觀察值; Prompt.CurrentValue是綁定到UI控件的值。當它是日期控制時,此驗證錯誤不起作用。
> hasValidationErrors = ko.computed(function() {
> //loop through fields and filter out fields that are set up with validation and has invalid data.
> var invalidFieldsArray=ko.utils.arrayFilter(fields(), function (field) {
> return !_.isUndefined(field.Prompt) && !_.isNull(field.Prompt)
> && (
> ((_.has(field.Prompt.CurrentValue,"isValid"))&&!field.Prompt.CurrentValue.isValid())
>
> ||
> ((_.has(field.Prompt.AdditionalData, "isValid")) && !field.Prompt.AdditionalData.isValid())
> );
> });
> return invalidFieldsArray.length > 0;;
> })
,
該所選日期時間本地值不綁定(爲相應的視圖模型:Prompt.CurrentValue),直到用戶選擇的日期,並進入全職...我明白的瀏覽器這個控件的驗證。計算的觀測值如何識別日期控制的無效性? (直到值有效時才通過值)
你可以發佈一些示例代碼片段,演示這個問題? –
發佈了日期時間控制的代碼.. – Balaji