【问题标题】:Textfield only with numbers仅包含数字的文本字段
【发布时间】:2013-04-10 05:37:19
【问题描述】:

我有液体问题。

这段代码:

<f:form.textfield class="wettersuchinput" maxlength="4" type="email" name="zip" value="{zip}" placeholder="PLZ für Lokalwetter eingeben"/>

我只想在此输入文本字段中填写数字。我试图改变数字的类型,但这不是我想要的。

谁能帮我在这个文本字段中只允许数字?

我正在寻找一个没有 viewhelper 的解决方案。

谢谢

【问题讨论】:

    标签: typo3 fluid


    【解决方案1】:

    在输入字段上使用属性pattern

    <f:form.textfield maxlength="4" name="zip" value="{zip}" additionalAttributes="{pattern: '[0-9]{4}'}"/>
    

    只允许输入正好包含四位数字。 CSS伪类:valid:invalid可以检查输入是否有效。

    当然,这不适用于所有浏览器(是的,我在看你,IE),它对安全没有帮助 - 恶意用户可以轻松绕过这一点。使用服务器端验证来确保安全。

    【讨论】:

    • pattern 属性会引发异常:#1237823695: Argument "pattern" was not registered.
    • 好的,这是答案中的错误 - 请改用 additionalAttributes&lt;f:form.textfield maxlength="4" name="zip" value="{zip}" additionalAttributes="{pattern: '[0-9]{4}'}"/&gt;。答案已更正。
    • 这不适用于 TYPO3 8.X 还是我错了?不在乎我是否使用 pattern="(\d+(\.\d{3})*)(,(\d{2})){1}" 或 additionalAttributes="{pattern:'(\d+ (\.\d{3})*)(,(\d{2})){1}'}" 语法,TYPO3 将删除部分:"{1}"、"{2}" 和 "{3 }" 来自我的模式 :(。似乎 cdata 也不再有帮助了 :(。我找到了一个解决方案:使用格式原始视图助手转义卷曲的备份,请参阅stackoverflow.com/questions/43425008/…
    • 花括号中的部分被解释为变量引用,因此{3} 将被变量3 的内容替换。由于3 可能没有定义(甚至没有一个有效的变量名?),它被空字符串替换。使用f:format.raw 是解决此问题的方法 - 只要确保您不会将 XSS 问题引入您的网站。
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多