代码之家  ›  专栏  ›  技术社区  ›  charan kumar

在keypress javascript上调用enter事件

  •  0
  • charan kumar  · 技术社区  · 6 年前

    我有以下代码,可以验证移动电话号码的最大值为10位,我使用的是input type="text" 因为 minlength 不会工作 type="number" 但问题是,当我试图通过键盘输入提交表单时,它没有提交

    $('#welcome_submit').on('click', function() {
      $.ajax({
        url: '/url',
        data: $('#entry_form').serialize(),
        type: "POST",
        datatype: 'JSON',
        success: function(data) {
          alert('success');
        },
        error: function(error) {
          console.log("Error: error");
        },
      });
    });
    $(document).ready(function() {
      document.querySelector("input").addEventListener("keypress", function(evt) {
        if (evt.which < 48 || evt.which > 57) {
          evt.preventDefault();
        }
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <form id="entry_form">
      <input type="text" value="" placeholder="Enter your Mobile Number" class="form-class" name="phone_no" autocomplete="off" autofocus maxlength="10" />
      <button id="welcome_submit" class="btn btn-continue welcome_first" type="submit">Continue</button>
    </form>

    在上面的代码中过滤enter事件'13'有什么想法吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   CodeF0x    6 年前

    检查密码13并提交表格:

    if (evt.keyCode == '13') {
      document.querySelector('#welcome_submit').click();
    }
    

    $('#welcome_submit').on('click', function() {
      $.ajax({
        url: '/url',
        data: $('#entry_form').serialize(),
        type: "POST",
        datatype: 'JSON',
        success: function(data) {
          alert('success');
        },
        error: function(error) {
          console.log("Error: error");
        },
      });
    });
    $(document).ready(function() {
      document.querySelector("input").addEventListener("keypress", function(evt) {
        if (evt.which < 48 || evt.which > 57) {
          evt.preventDefault();
        }
        if (evt.keyCode == '13') {
          document.querySelector('#welcome_submit').click();
        }
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <form id="entry_form">
      <input type="text" value="" placeholder="Enter your Mobile Number" class="form-class" name="phone_no" autocomplete="off" autofocus maxlength="10" />
      <button id="welcome_submit" class="btn btn-continue welcome_first" type="submit">Continue</button>
    </form>
        2
  •  1
  •   jperez    6 年前

    你可以听 提交 表单上的事件而不是听 键控/按键 输入上的事件:

    $('#entry_form').on('submit', function(event) {
      event.preventDefault();
      var serializedData = $(this).serialize();
      // Ajax request ...
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <form id="entry_form">
      <input type="text" value="" placeholder="Enter your Mobile Number" class="form-class" name="phone_no" autocomplete="off" autofocus maxlength="10" />
      <button id="welcome_submit" class="btn btn-continue welcome_first" type="submit">Continue</button>
    </form>