我是HTML / PHP / Javascript和Bootstrap框架的新手...

这是我的代码:

<form name="Enquiry" method="post" action="query.php">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<h5>Choose search type:</h5>
<div id="selector" class="btn-group">
    <button type="button" name="Surname" class="btn btn-default active">Surname</button>
    <button type="button" name="IDNumber" class="btn btn-default">ID Number</button>
    <button type="button" name="FileNumber" class="btn btn-default">File Number</button>
</div>
<br>
<input id="searchbox" name="QD" type="text" size="20"  maxlength="30" pattern="/[A-z]/g" title="0-Only alphabets allowed! No special characters or numbers. Please correct!">
<script>
$('#selector button').click(function() {
    $(this).addClass('active').siblings().removeClass('active');
    $getName = this.name;

        switch ($getName) {
            case "Surname":
            document.getElementById('searchbox').value="";
            document.getElementById('searchbox').maxLength="30";
            document.getElementById('searchbox').pattern="/[A-z]/g";
            document.getElementById('searchbox').title="1-Only alphabets and spaces allowed. Please correct!";
      break;
            case "IDNumber":
            document.getElementById('searchbox').value="";
            document.getElementById('searchbox').maxLength="13";
            document.getElementById('searchbox').pattern="\d+";
            document.getElementById('searchbox').title="2-Only numerical value allowed in the ID field! Please correct";
      break;
            case "FileNumber":
            document.getElementById('searchbox').value="";
            document.getElementById('searchbox').maxLength="5";
            document.getElementById('searchbox').pattern="\d+";
            document.getElementById('searchbox').title="3-Only numerical value allowed in the file number field! Please correct";
        }
});
</script>

<input type="submit" class="btn btn-primary" name="search" value="Query">
</form>


完整代码位于:
https://jsfiddle.net/o5n5ucm6/7/

我想要达到的目标:
根据用户按下的按钮,我使用regxp和maxlength等设置输入文本框的验证标准。

问题我有:
当我单击查询按钮(POST方法)时,即使该值与regxp匹配,它仍然会引发错误。

有什么帮助和建议吗?

最佳答案

Javascript允许使用正则表达式文字,因此您无需引用行。

更改此行:
document.getElementById('searchbox').pattern="/[A-z]/g";

为此:
document.getElementById('searchbox').pattern=\[A-z]\g;

两行与此:
document.getElementById('searchbox').pattern="\d+";

需要更改为:
document.getElementById('searchbox').pattern=\d+;

关于javascript - 使用Bootstrap按钮的验证错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42187758/

10-11 01:29