提交按钮并输入验证?

时间:2018-09-30 19:40:56

标签: javascript button character submit

我想更改此代码,使其在按下Enter键时也能更清楚地显示,我得到了一个提交表单和一个文本字段,其后必须单击“提交”按钮才能提交,但这对我没有帮助因为我需要在按下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编码的新手,因此请您提供更具体的信息,而我的知识不足以对它进行轻松排序。

1 个答案:

答案 0 :(得分:0)

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

您将获得信息,为什么“ button type =“ submit”比将其添加到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(){...您的代码

您所描述的作品,onclick。您可以使用类似的功能:

  

submitButton.onkeypress = function(){...与上面的示例相同,但具有检查keyCode的代码

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

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