-1

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

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

可以通过输入来完成吗?

就像是

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

Ps:我不要求占位符。

目前我在做

<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

4 回答 4

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">

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

于 2013-04-30T08:37:15.960 回答
1

不是按照您要求的方式,但是您始终可以尝试使用具有实际价值的隐藏元素...

尝试;

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

因此,要获得 $time$_POST['realtime']并获得格式化的日期值,它将是$_POST['dummytime'].

于 2013-04-30T08:37:37.533 回答
0

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

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

于 2013-04-30T08:38:04.187 回答
0

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

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

于 2013-04-30T08:39:34.047 回答