如何使用Knockout.js绑定HTML5日期选择器和其他输入类型
How to bind HTML5 datepicker and other input types using Knockout.js?
我开始学习knockout.js,在使用html5表单字段时遇到了一些问题。当我处理html5输入字段元素的文本类型,然后一切顺利,但不幸的是,我不能得到和显示值从html5 datepicker哪一种类型是日期。
我发现了一些在KnockoutJS中描述数据绑定与日期拾取器的例子,但他们使用一些其他来源(例如moment.js或jQuery UI)来实现所需的结果。
因此,你能给我任何关于绑定html5日期picker输入与KnockoutJS不包括任何额外的插件和库,而不使用计算变量的想法吗?
除此之外,我甚至没有在KO的官方文档中找到任何参考资料来解释如何使用HTML5的新输入类型,如颜色,电子邮件,url,数字,范围等。因此,如果您能给我一些提示,我将非常感激。
<h2>Set date</h2>
<!--input type "text" works well and the result is visible below whereas other input types are problematic-->
<input type="text" data-bind="value: addStart" /><br>
From <input type="date" data-bind="date: addStartDate" />
To <input type="date" data-bind="date: addEndDate" />
<input type="color" data-bind="date: addColor" />
<input type="email" data-bind="date: addEmail" />
<input type="url" data-bind="date: addUrl" />
<input type="number" data-bind="date: addNumber" />
<input type="range" data-bind="date: addRange" />
<h2>Display date</h2>
<strong data-bind="text: addStart" ></strong><br>
<strong data-bind="text: timeLine" ></strong><br>
<strong type="color" data-bind="date: addColor"></strong> <br>
<strong type="email" data-bind="date: addEmail"></strong><br>
<strong type="url" data-bind="date: addUrl"></strong><br>
<strong type="number" data-bind="date: addNumber"></strong><br>
<strong type="range" data-bind="date: addRange"></strong><br>
var ViewModel = function() {
var self = this;
self.addStart = ko.observable();
self.addStartDate = ko.observable(); // date
self.addEndDate = ko.observable(); // date
self.addColor = ko.observable(); // Color
self.addEmail = ko.observable(); // Email
self.addUrl = ko.observable(); // Url
self.addNumber = ko.observable(); // Number
self.addRange = ko.observable(); // Number
};
// Activates knockout.js
ko.applyBindings(new ViewModel());
将这些新的input
类型视为type='text'
,并仅使用value
绑定。看到:
ko.applyBindings({ val1: ko.observable(), val2: ko.observable(), val3: ko.observable() });
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
Date: <input type="date" data-bind="value: val1" />
<hr />
Color: <input type="color" data-bind="value: val2" />
<hr />
Email: <input type="email" data-bind="textInput: val3" />
<hr />
Etc.
<hr />
Confirm that view model actually changes / debug info:
<pre data-bind="text: ko.toJSON($root)"></pre>
相关文章:
- 在jsp中,隐藏一个基于其他具有日期选择器的字段的字段
- 如何将日期选择器返回的日期格式转换为其他格式
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 从日期选择器中获取默认格式的日期,并在jquery UI中转换为其他格式
- 设置为在没有父级和子级的其他选择器上可见
- 如何在 UI-日期选择器中选择日期 在其他 UI 日期选择器上
- 除了这个类之外,还有其他整洁的选择器吗?
- jQuery选择器使用正则表达式(或其他东西)
- Jquery 选择器元素内部的其他
- 在定位选择器(或其他东西)时遇到问题
- 如何将Jquery日期选择器添加到其他脚本中
- 如何根据其他日期约束jQuery ui日期选择器的最小和最大日期
- 希望将CSS ID传递给其他页面中的选择器
- 如何在不影响其他值的情况下使jquery ui中的日期选择器禁用sunday
- mootools日期选择器从其他日期选择器中设置值
- 类在不同元素中的使用(其他jQuery选择器不工作)
- 指定在用逗号分隔jQuery选择器时,哪个jQuery选择器的优先级高于其他选择器
- 如何从中心扩展选择器宽度(或其他有效的替代方案)
- 合金ui多个数据采集器发送选择到其他输入
- jQuery .each()函数通过索引访问其他选择器