首页 > 解决方案 > JavaScript 函数的问题

问题描述

我有以下表格行:

<input class="form_input" type="text" id="Fname" placeholder="First Name" minlength="2" maxlength="30" onkeyup="restrict('name')"/>

以及相关的 JavaScript 代码:

function restrict(elem) {
    var tf = $('#' + elem)
    var rx = new RegExp()
    if (elem === 'email') {
        rx = /[^a-z0-9@_.-]/gi
    } else if (elem === 'username') {
        rx = /[^a-z0-9]/gi
    } else if (elem === 'phone') {
        rx = /[0-9()-]/gi
    } else if (elem === 'address') {
        rx = /[^a-z0-9_.,-]/gi
    } else if (elem === 'city') {
        rx = /[^a-z.-]/gi
    } else if (elem === 'name') {
        rx = /[^a-z.-]/gi
    }
    tf.val(tf.val().replace(rx, ''))
}

当我尝试运行代码时,出现以下错误,并且在多次查看后我似乎无法弄清楚为什么......

TypeError: tf.val(...) is undefined

然而一切都是定义的,所以我真的很困惑。

谢谢你的帮助!:)

标签: javascript

解决方案


id="Fname"...onkeyup="restrict('name')"

function restrict(elem) {
    var tf = $('#' + elem)

没有带有 id 的元素name


我建议您还查看pattern输入中的属性以进行验证:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes


推荐阅读