首页 > 解决方案 > 名称验证问题 - 页面不使用更新的输入

问题描述

我做了一个登记表。在其中我添加了一个负责验证用户名的 jQuery 函数(不是太短且尚未使用),它似乎工作正常,但页面不会继续检查用户插入的用户名是否已被修改以匹配制定标准。它只在页面加载时检查用户名(它立即显示“用户名太短”),然后不再检查。

<form class="register_form_container" action="register.php" method="post">
  <div class="inputs_box">
    <p class="input_register_title">Name</p><input type="text" name="nome" value="">
    <p class="input_register_title">Age</p><input type="text" name="eta" value="">
    <p class="input_register_title">City</p><input type="text" name="citta" value="">
    <p class="input_register_title">Country</p><input type="text" name="paese" value="">
    <p class="input_register_title">Mail</p><input type="text" name="mail" value="">
    <p class="input_register_title">Password</p><input type="text" name="password" value="">
    <p class="input_register_title">Psychonaut name</p><input id="username_input" style="font-size:2vw;" type="text" name="username" value="">
  <div id="feedback">
  </div>
  <div class="input_register_title">
    <input class="submit_register_btn" type="submit" name="registra_user" value="ENTER THE COMMUNITY">
  </div>
  </div>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- <script type = "text/javascript" src = "js/jQuery.js"></script> -->
<script type = "text/javascript">

    // when the document is ready, run the jquery script
    $(document).ready(function(){
        $('#feedback').load('check.php').show();

        /* We use keyup so that everytime the user type in the keyboard, it'll check the database and get results however,
          you can change this to a button click which is I think, more advisable.
          Sometimes, your server response is slow but just for this demo, we'll use 'keyup' */
        $('#username_input').keyup(function(){

            $.post('check.php', { username: form.username.value },
                function(result){
                    $('#feedback').html(result).show();
                });

        });
    });
</script>

标签: phpjquery

解决方案


您应该在开发人员工具控制台中看到一个错误。我认为您的问题是 form.username.value 不存在。尝试这个:

        $('#username_input').keyup(function(){

            $.post('check.php', { username: $(this).val() },
                function(result){
                    $('#feedback').html(result).show();
                });

        });

推荐阅读