JQUERY 在 (onchange) 函数上不起作用

JQUERY is not working on (onchange) function

提问人:pal deepak 提问时间:4/4/2021 更新时间:4/4/2021 访问量:280

问:

我正在创建一个依赖项下拉列表,但是,

当我将 Id 从一个函数传递到另一个函数时,它不起作用 下面是一些代码示例

<?php
include("includes/db.php");
?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
     <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div>
    <select id="all_category">
        <option>select a category</option>
    </select>
</div>
<script type="text/javascript">
    $(document).ready(function(){
        category();
         function category(){
            $.ajax({
            url : "action.php",
            method : "POST",
            data : {category:1},
            success : function(data){
                $("#all_category").html(data)
            }
        })
    }
    $("#all_category").change(function () {
        var val = $(this).val();
        var xyz = $("#all_category option:selected").val();
        console.log("hello"+xyz)
    })
    })
</script>
</body>
</html>

此代码用于从 中获取数据。API

当我从第一个下拉列表中打印 ID 时,

它只是在 My Id Variable 之前打印按摩console.log

<?php
include "../db.php";
if (isset($_POST["category"])) {
    $get_assign_course = "SELECT * FROM categories";
    $run_p_cats = mysqli_query($con,$get_assign_course);
    while ($rows=mysqli_fetch_array($run_p_cats)) {
        $cat_id  = $rows['cat_id '];
        $cat_title = $rows['cat_title'];
        echo "<option value='$cat_id '>$cat_title</option>
        ";}}
?>

这是我的帮助?API

php jquery ajax API mysqli

评论

0赞 hppycoder 4/4/2021
你的 Javascript 有什么作用?那去哪儿了?您是否最初看到所有类别,并且在用户选择一个类别时遇到问题?category();
0赞 pal deepak 4/4/2021
是的,最初我在我的 API 中使用代码拥有我的所有类别,我想要的是以我选择的console.log打印该类别的 ID
0赞 butalin 4/4/2021
你试过了吗$("#all_category option:selected").text()

答:

0赞 Alli2021 4/4/2021 #1

尝试更改此设置: $(“#all_category”).change(函数 进入这个:

$("#all_category").on('change',function

或者试试这个:

$(document).on('change','#all_category',function(){

让我知道这是否适合您

评论

0赞 pal deepak 4/4/2021
我已经尝试过,但它不起作用$(document).on('change','#all_category',function(){ var val = $(this).val(); var xyz = $("#all_category option:selected").val(); console.log("hello"+xyz) })
0赞 hppycoder 4/4/2021 #2

当您在 jQuery 中使用时,它将销毁事件上已经发生的任何绑定。这是因为删除了 DOM 树并使用数据重新初始化它。.html()html

<script type="text/javascript">
  $(function() {
    $.ajax({
      url: "action.php",
      method: "POST",
      data: {category: 1},
      success: function (data) {
        $("#all_category").html(data);
        $("#all_category").on('change', function (evt) {
          console.log($(this).val())
        })
      }
    });
  });
</script>

若要解决此问题,需要在调用后重新绑定。.html()