提交按钮和输入验证?

Submit button and input validation?

我想更改此代码以使其在按下 Enter 时也能更清楚地工作我得到了一个提交表单和一个文本字段,其后是必须单击才能提交​​的提交按钮,但这无济于事我出去了,因为我需要在按下回车键时识别表格,整理它会有什么变化?

submitButton.onclick = function() {
  index    = 0;
  results  = [];
  username = usernameInput.value;
  if ( username.length > 0 ) {
     window.location.href   = '//' + window.location.host + window.location.pathname + '#' + username;
     usernameInput.disabled = true;
     submitButton.disabled  = true;
     getExistence();
  }

此外,我还遇到了输入验证问题,我应该进行哪些更改才能让表单识别并接受特殊字符?

 usernameInput.onchange = function() {
  this.value = this.value.replace(/[^a-z0-9]+/ig, '').slice(0, 40);


var urlUsername          = window.location.href.match(/\#([0-9a-z]{1,40})$/i)

由于我是 javascript 编码的新手,我会要求您更具体一些,而且我的知识不足以轻松对其进行排序。

第一个解决方案是阅读这个。 https://www.tjvantoll.com/2013/01/01/enter-should-submit-forms-stop-messing-with-that/

您了解为什么 "button type="提交”比将其添加到 JS 中更好。 我认为,您的问题的解决方案可能是这样的:

<form>
    <label for="age">Age:</label>
    <input type="number" min="0" max="120" name="age" id="age">
    <button id="child">Child</button>
    <button id="adult">Adult</button>
</form>
<script>
    (function() {
        var age = document.getElementById('age');
        age.addEventListener('keypress', function(event) {
            if (event.keyCode == 13) {
                event.preventDefault();
                if (age.value > 20) {
                    document.getElementById('adult').click();
                } else {
                    document.getElementById('child').click();
                }
            }
        });
    }());
</script>

简而言之,评论您的代码:

submitButton.onclick = function() { ... your code

如您所描述的那样工作,onclick。您可以使用类似的功能:

submitButton.onkeypress = function() { ... same code with checking keyCode as example above

验证:创建任何正则表达式的最简单方法是进行一些实际测试。我个人更喜欢这个网站:https://regex101.com/

什么是“特殊”字符?因为现在没人能帮忙。此特定示例中的更多信息。您只是不需要 JS 的任何 RegEx。接受任何字符并在后端执行所有操作。