使用regEx验证输入字段不起作用

我们是

我被要求验证我们的输入字段。这样,我限制了您可以在输入字段中填写的字符。每当我添加一些数据并且所有数据都使用一个ID时,我的输入字段就会增加。

它适用于第一行,其余的行不行。有什么建议如何解决吗?

            echo""
            . "<form action=maintenance.php method=POST>"
            . "<tr>"
            . "<td><input class='textbox' type=text id='name' name=name value='" . $record['name'] . "'> </td>"
            . "<td><input class='textbox' size=50 id='url' type=url name=url value='" . $record['url'] . "'></td>"
            . "<td><textarea class=textbox rows=2 cols=50 wrap=physical id=desc name=desc>" . strip_tags($record['description']) . "</textarea></td>"
            . "<input type=hidden name=hidden value='" . $record['name'] . "'>"
            . "<td><button class='btn-style-icons shrink' type=submit name=update><img src=icons/update.png alt=Update></button></td>"
            . "<td><button class='btn-style-icons shrink' type=submit name=delete><img src=icons/delete.png alt=Delete></button></td>"
            . "</tr>"
            . "</form>";
        }
        echo""
        . "</table>"
        . "<table>"
        . "<form action=maintenance.php method=POST>"
        . "<tr>"
        . "<td><input class='textbox' id='name' type=text name=iname></td>"
        . "<td><input class='textbox' id='url' size= 50 url=url name=iurl></td>"
        . "<td><textarea class=textbox id=desc rows=2 cols=50 name=idesc></textarea></td>"
        . "<td><button class='btn-style-icons shrink' type=submit name=add id=add><img src=icons/add.png alt=Add></button></td>"
        . "</tr>"
        . "</form>"
        . "</table>";

它是这样的:

在此处输入图片说明

action.js

$(document).ready(function () {
    $('#name').bind('keypress', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9 \b\t]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
    });

    $('#url').bind('keypress', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9://. \b\t]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
    });
});
卡尔·安德烈·加农(Karl-AndréGagnon)

好的解决方案

ID必须是唯一的,因此请使用and代替id="name"or 之后,您可以将选择器更改为,它将起作用。id="url"class="name"class="url".name.url

破解解决方案

如果出于某种原因想要使HTML无效并重复ID,则可以利用jQuery并在选择器之前插入一个空格。它将返回多个元素。

$(' #name')
$(' #url')

除非您的头顶着枪并且有人要求您在不更改HTML的情况下调试他的代码,否则请不要使用它。使用类,这就是它们存在的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

输入字段空白验证不起作用的javascript

使用jQuery .val()设置输入字段值时,引导程序验证器不起作用

在输入字段上使用parseInt不起作用

对输入字段同时使用 value 和 ngModel 不起作用?

简单的用户输入验证不起作用

空输入验证不起作用?

角输入模式验证不起作用

用于验证的输入[最大]不起作用

输入字段不起作用的JavaScript onClick

动态输入字段不起作用

反应输入字段“必需”不起作用

即使使用输入'is-valid',使用无效反馈时,Bootstrap 4表单验证也不起作用

为什么必需的字段验证在使用 react 的表单中不起作用?

为什么自定义输入验证和 setError() 在使用 useField() 时不起作用?

使用单个输入上传多个图像时,Codeigniter 验证不起作用

使用 flask_wtf 验证器控制输入文件不起作用

验证输入框,使用Jquery focusin函数不起作用

在输入字段中使用 datepicker 类时,bootstrap datepicker (autoclose,endDate,startDate) 不起作用

角度清除输入字段不起作用,但使用退格键清除

jQuery preventDefault在字段验证后不起作用

DjangoRestFramework ModelSerializer:字段级验证不起作用

Laravel验证数量字段数组不起作用

Laravel:某些字段的自定义验证不起作用

验证空白Django表单字段不起作用

PHP验证来检查文本字段不起作用

必需的字段验证在asp.net中不起作用

角度正式验证金额字段不起作用

反应输入验证在表单中不起作用

角反应形式输入验证在负载上不起作用