我在表单中输入需要指定分钟和秒数(而不是特定日期/时间)的时间长度。我该怎么做呢?cakePHP:如何将持续时间格式设置为MM:SS
echo $this->Form->input('time', array('type'=>'time', 'timeFormat'=>24));
//results in HH:MM but I need MM:SS
我在表单中输入需要指定分钟和秒数(而不是特定日期/时间)的时间长度。我该怎么做呢?cakePHP:如何将持续时间格式设置为MM:SS
echo $this->Form->input('time', array('type'=>'time', 'timeFormat'=>24));
//results in HH:MM but I need MM:SS
默认表单助手不支持这一点,所以你将不得不使用常规的“文本”输入('type' => 'text'
)和解析/格式化模型的beforeValidate()
值。
或者,您也可以创建两个下拉列表(分和秒),或使用日期时间输入和隐藏与CSS非相关的下拉列表中,但是这可能有点“脏”
您还需要创建自定义验证规则来验证您的值;请参阅Adding your own Validation Methods,因为内置的“时间”验证规则不验证秒。
我宁愿你喜欢去JS时间选择器。只需添加一个插件到您的项目中,并按照下面列出的要求使用其功能链接 http://www.jquery4u.com/plugins/10-jquery-time-picker-plugins/
希望这会有所帮助!
忘记提及cakephp帮助器(form/html)不支持这样的设施,而是像这样寻找客户端或服务器端验证来完成任务。第一手处理事情是最好的。因此,减少工作量和时间来实现JS插件。 – MaNKuR 2013-04-05 07:58:30
如果客户端“验证”改进了*用户体验*(例如直接告诉一个值无效而无需提交表单),那么这是一种很好的做法。但是,**你应该永远不要依赖客户端验证**。简单地禁用JavaScript将允许用户输入他/她想要的任何东西 – thaJeztah 2013-04-05 08:29:26
今天几乎所有(着名的)应用程序(网络)主要由Javascript(ajax/Jquery)驱动。即使没有Jquery框架,我们也无法想象开发一个优雅和充足的应用程序。很明显,用户将面临问题如果** JavaScript禁用**无论出于何种原因。所以我认为我们应该给他们一个可行的信息来显示错误。是的,在面对应用程序的意外行为之前,我们还必须通过服务器端验证来处理此问题。 – MaNKuR 2013-04-05 09:21:37