Jquery 输入规则在 XMLHttpRequest 中不起作用

问题描述 投票:0回答:1

我在输入框中有规则,我用 jQuery 创建它们,我使用 XMLHttpRequest 调用输入框。当我使用 XMLHttpRequest 调用它后,我创建的所有规则都失败了。

但是我尝试过不使用 XMLHttpRequest,我制定的所有规则都运行得很好。这是为什么?

我希望输入框中的规则能够正常工作,即使我使用 XMLHttpRequest 调用它们。

这是我在第一个文件(z1.php)中的简单代码:

 <?php
    include('z1ajax.php');
?>
<html lang="en">
<head>
    <title>SIGN UP</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <link rel="shortcut icon" type="image/x-icon" href="/to/img/bqicon.png"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <style>
        body{
            background-color:black;
        }
    </style>
    <script>
        window.onload=function(){
            var signup = document.getElementById("signup");
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "/to/z1ajax.php", true);
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4 && xhr.status==200){
                    signup.innerHTML = xhr.responseText;
                }
            }
            var v="onload=yes";
            xhr.send(v);
        }
        
        $(document).ready(function(){
            $('#email').on('keyup',function(){
                var $this = $(this);
                var value = $this.val();
                $this.val(value.replace(/\s+/g,'')); //NO SPACE
                $(this).val($(this).val().toLowerCase()); //LOWERCASE
            });
            $('#username').bind('keyup keypress blur', function(){ 
                $(this).val(function(i, val) {
                    return val.replace(/[^a-z]/,''); //LOWERCASE, NO SPACE, LETTER ONLY
                });
            });
            $('#namapang').bind('keyup keypress blur', function(){ 
                $(this).val(function(i, val) {
                    return val.replace(/[^a-z]/,''); //LOWERCASE, NO SPACE, LETTER ONLY
                });
            });
            $('#pwd').on('keyup',function(){
                var $this = $(this);
                var value = $this.val();
                $this.val(value.replace(/\s+/g,'')); //NO SPACE
            });
            $('#city').bind('keyup keypress blur', function(){ 
                $(this).val(function(i, val) {
                    return val.replace(/[^a-zA-Z ]/,''); //LETTER ONLY WITH SPACE
                });
            });
        });
    </script>
</head>
<body>
    <div id='signup'></div>
</body>
</html>

这是我在第二个文件(z1ajax.php)中的简单代码:

<?php
    $onload=isset($_REQUEST['onload'])?$_REQUEST['onload']:null;
    if($onload=='yes'){
?>
        <br>
        <div class='container'>
            <div class='row'>
                <div class='col-md-4'></div>
                <div class='col-md-4'>
                    <center>
                        <font size='4'><strong><font color='white'>SIGN UP</font></strong></font><br>
                    </center>
                    <br>
                    <div class='input-group'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-envelope'></span></span>
                        <input type='email' id='email' class='form-control' placeholder='Email aktif'>
                    </div>
                    <br>
                    <div class='input-group'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-pushpin'></span></span>
                        <input type='text' id='username' class='form-control' placeholder='username'>
                    </div>
                    <br>
                    <div class='input-group'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-credit-card'></span></span>
                        <input type='text' id='namapang' class='form-control' placeholder='nama panggilan'>
                    </div>
                    <br>
                    <div class='input-group'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-credit-card'></span></span>
                        <input type='password' id='pwd' class='form-control' placeholder='password untuk login'>
                        <span class='input-group-addon'><span id='eye' class='glyphicon glyphicon-eye-close' onclick="seppwd('pwd')"></span></span>
                    </div>
                    <br>
                    <div class='input-group'>
                        <span class='input-group-addon'><span class='glyphicon glyphicon-home'></span></span>
                        <input type='text' id='city' class='form-control' placeholder='kota'>
                    </div>
                    <br>
                </div>
                <div class='col-md-4'></div>
            </div>
        </div>
<?php
    }
?>
php html jquery xmlhttprequest
1个回答
0
投票
  1. 为字段指定一个或多个类 lowerCase、noSpace 和 letterOnly
  2. 使用容器中的 .on 进行委托
$(function() {
  $('#signup')
  .on('input', '.lowerCase.noSpace', function() {
    var $this = $(this);
    var value = $this.val();
    $this.val(value.replace(/\s+/g, '')); //NO SPACE
    $(this).val($(this).val().toLowerCase()); //LOWERCASE
  })
  .on('input blur', '.lowerCase.noSpace', function() {
    $(this).val(function(i, val) {
      return val.replace(/[^a-z]/, ''); //LOWERCASE, NO SPACE, LETTER ONLY
    });
  })
  .on('input blur', '.noSpace', function() {
    var $this = $(this);
    var value = $this.val();
    $this.val(value.replace(/\s+/g, '')); //NO SPACE
  })
  .on('input blur', '.letterOnly', function() {
    $(this).val(function(i, val) {
      return val.replace(/[^a-zA-Z ]/, ''); //LETTER ONLY WITH SPACE
    });
  });
  $.post('/to/z1ajax.php', (data) => $signup.html(data));
});
© www.soinside.com 2019 - 2024. All rights reserved.