向表单输入字段添加默认值

Posted

技术标签:

【中文标题】向表单输入字段添加默认值【英文标题】:Add a default value to a form input field 【发布时间】:2016-01-30 14:41:35 【问题描述】:

我有一张在线贷款申请表。在贷款期限字段中,我需要确保用户在输入月数时输入“月”或“月”。例如。 36 个月。

我为此创建了一个正则表达式(.[Mm]onths? - 我第一次尝试创建一个正则表达式),但我觉得用户必须返回该字段并输入单词“months”可能会很烦人”。

是否可以将“月”一词预先插入字段或在编辑字段/表单提交后插入?我已经有占位符文本(“前所:36个月”),但选择输入字段时会消失。我需要将文本“months”作为正在输入的实际文本的一部分。

我在网上进行了快速搜索,我知道某处有答案,但我似乎找不到要使用的正确搜索词,因为我还没有找到解决方案。

对这个问题有什么建议吗?如果我不能以任何方式将文本“months”包含在输入中,我将不得不使用正则表达式。

【问题讨论】:

在服务器端验证时这样做吗? 我不会在输入中有几个月,而是在标签/输入之后。然后你只需要在字段上进行整数验证。如果您需要添加文字“月”,请在验证整数后添加。 @hjpotter92 - 尽我所能。服务器端或客户端。 @John - 用户输入整数后如何添加单词? 【参考方案1】:

如果您愿意在服务器端验证中执行此操作,请使用如下形式:

<input type="number" name="months" /> months

之后,在服务器代码中;你会做(假设 php):

$mon = $_REQUEST['months'] . " months";

【讨论】:

这行得通,但是如果用户输入“36 个月”,我最终会得到“36 个月”...我认为使用正则表达式会更好。 用户不能为input type="number"元素输入36 Months 是的,这是真的。但是我使用的 wordpress 插件不使用 type="number",只使用 type="text"。我发现这有点令人沮丧,因为我不能有一个数字字段。非常感谢您的意见和帮助,谢谢。 FSCF - 快速安全联系表 @Kbam7 常见问题解答表明这是可能的:fastsecurecontactform.com/how-to-add-extra-fields【参考方案2】:

为防止36 Months months 如果用户找到不正确的输入方式或使用不支持type="number" 的旧版浏览器,您应该考虑扩展您的PHP。通过类型转换说只得到第一个整数并在它前面加上“月”

$months =  (int) $_REQUEST["months"] . " months";
//Input '36 Months'. Output '36 months'
//Input 'Months36'. Output '0 months'  

或者通过删除每个不构成数字的字符并在其前面加上“月”

$months =  preg_replace('/[^0-9.]/', '', $_REQUEST["months"]) . " months";
//Input '36 Months'. Output '36 months'
//Input 'Months36'. Output '36 months'
//Input 'Man3Bad6'. Output '36 months'
//Input 'Gone3g6F.ullstop5'. Output '36.5 months'

【讨论】:

以上是关于向表单输入字段添加默认值的主要内容,如果未能解决你的问题,请参考以下文章

向 html 输入元素添加默认值会冻结递增/递减功能

怎样设定一个表单的默认值?

hibernate 向数据库里设置了默认值的字段添加数据为null时失效的问题

在Laravel中添加表单提交的默认值

向架构构建器中的枚举类型字段添加默认值

为 Laravel 表单字段定义默认值