为不同于值的文本输入创建标签

时间:2013-04-30 08:35:13

标签: html

例如我有一个禁用输入,保持时间跨度,但我想以友好的格式显示给用户。就像select元素一样,带in的选项可以保存一个与显示的值不同的值

<select><option value=1>Label is there</option></select>

可以通过输入完成吗?

类似

<input type='text' value='<?=$time?>' label='<?=date('c',$time);?>' />

P.s:我不是要求占位符。

目前即将开始

<label for="app_time">Time</label>
<input type="hidden" value="2013-04-27 15:40:00" name="app_time">
<input type="text" value="27 Apr 13, 03:40" Disabled>

还有其他方法吗?

4 个答案:

答案 0 :(得分:3)

您可以将输入包装在label标记中。

<label>Text for the input <input type="text" name="yourInput"></label>

或者您可以引用label标记的输入。

<label for="yourInput">Text for the input</label>
<input type="text" name="yourInput" id="yourInput">

您可以为标签元素添加样式,它可以帮助人们使用辅助技术,因为它将描述与表单元素链接起来。

答案 1 :(得分:1)

不是你要问的方式,但是你总是可以用一个隐藏的元素来试试它...

尝试;

<input type="text" value="<?=date('c',$time);?>" name="dummytime" />
<input type="hidden" value="<?=$time;?>" name="realtime" />

所以为了得到$ time,它将是$_POST['realtime']并获得格式化的日期值$_POST['dummytime']

答案 2 :(得分:0)

不,不是你问的方式。文本输入的value是其中显示的内容。

作为替代方案,您可以使用带有实际值的隐藏输入,然后将标签放在文本输入中

答案 3 :(得分:0)

您最好的办法是将日期转换为服务器端的时间戳。但是,您需要确保将提交的文本转换为时间戳,如果没有,则向用户显示错误。 JavaScript没有内置的方法将某些用户输入的字符串转换为计算机可读的日期格式。

编辑:我假设您希望实际值匹配用户输入的内容,而不是静态时间戳。如果您想要提交静态值而不管用户的输入,只需使用隐藏的输入(<input type="hidden">)和您可以忽略的辅助文本输入。