当前位置: 首页 > 知识库问答 >
问题:

如何在第二个ajax完成后选择输入选项,JQuery

符学
2023-03-14

我正在使用ajax将数据从mysql加载到php。我想为我的网站创建编辑功能。此编辑将在模式上进行。在使用以前的ajax加载无线电输入类别之后,ajax将加载带有选项(子类别)的Select input。

我尝试了几个jquery事件来更改select选项,但都没有成功。这是我的模式文件中的脚本代码。

<script>    
    $(document).ajaxComplete(function() {
        $("#editexp'.$poz.'").on("shown.bs.modal", function(){
            $("input[name=payment'.$poz.'][value='.$method.']").prop("checked", true);

            $("input[name=kategoria'.$poz.'][value='.$catid.']").prop("checked", true);

            var category = '.$catid.';
            var poz = '.$poz.';
            $.ajax({
                url:"expense_subcategory_change.php",
                method:"POST",
                data:{category:category,
                    poz:poz
                },
                success:function(data){
                    $("#subcategory'.$poz.'").html(data);
                }
            });

            $("input[type=radio][name=kategoria'.$poz.']").change(function(){

                var category = $(this).val();
                var poz = '.$poz.';
                $.ajax({
                    url:"expense_subcategory_change.php",
                    method:"POST",
                    data:{category:category,
                        poz:poz
                    },
                    success:function(data){
                        $("#subcategory'.$poz.'").html(data);
                    }
                });
            });


        });
    });

    $("#subcategory'.$poz.'").ajaxComplete(function() {
         $("#subcategory'.$poz.' ").find("option").each( function() {
              var $this = $(this);
              if ($this.val() == '.$subcatid.') {
                 $this.prop("selected","selected");
                 return false;
              }
         });
    });
</script>

我也试过:

    $("#subcategory'.$poz.'").ajaxComplete(function() {
          $("#subcategory'.$poz.' option[value='.$subcatid.']").prop("selected","selected");
    });

此外,这两个函数对于#子类别没有ajaxComplete,或者对于文档没有第二个ajaxComplete

正在加载带有选项的输入,但始终选择第一个选项。

这是我的费用子类别更改代码的主要部分:

$result = mysqli_query($connection,"$sql_query");

$output .= '<select class="mb-3 w-50-100 " name="subcategory'.$poz.'">';

while($row = mysqli_fetch_array($result))
{
    $output .= '<option value="'.$row['id'].'" >'.$row['sub'].'</option>';  
}

$output .= '</select>';

echo $output;

共有2个答案

曹涵润
2023-03-14

如果您正在使用任何事件。尝试在函数中绑定该事件。所以每次事件都会被绑定。开火后。

阎懿轩
2023-03-14

问题在您的选择器中。您在select元素中使用“name”,但使用“#”(id)在dom中搜索该元素。将PHP代码更改为:

$output .= '<select class="mb-3 w-50-100 " id="subcategory'.$poz.'">';

我用你提供的第二种方法做了测试,因为它看起来更干净

$("#subcategory'.$poz.' option[value='.$subcatid.']").prop("selected","selected");

请参见此处的解决方案(简化代码)https://jsfiddle.net/79kugn60/

 类似资料:
  • 问题内容: 我已经在输入框中成功实现了GoogleMapsPlacesV3自动完成功能。它工作得很好,但是我很想知道当用户按下Enter时如何使它从建议中选择第一个选项。我想我需要一些JS魔术,但是我对JS非常陌生,并且不知道从哪里开始。 提前致谢! 问题答案: 在我最近工作的网站上实现自动完成功能时,我遇到了同样的问题。这是我想出的解决方案:

  • 我想创建一些表格与自动填充价格在输入框,但我不知道如何实现到我的代码。首先我有选择选项,然后选择选项后,输入框上的价格会自动生成,然后我输入折扣值,然后总价格会自动生成(基本价格-折扣%)。这是我的代码: null null

  • 我不知道为什么,但是在scrren尺寸1024 x 768上,我从select中选择的选项太大了。我怎样才能让这个选项像select一样宽?我想只在bootstrap 4上这样做,只使用bootstrap中的类,但我不知道或者这是可能的,我不知道为什么这个选择会这样。在更大的屏幕尺寸上,一切都可以。如何修复它?这是我的代码:

  • 我有一个简单的使用Ajax从json文件动态生成的select选项,但我没有做到的是在提交表单后将以前选择的选项保持为选中状态。用发送到JS的PHP变量尝试了这一点,但我找不到在脚本标记中使用PHP代码的方法,并且用PHP重复所有内容都很难看。有什么想法吗? 我的PHP AJAX代码: 我的JSON文件:

  • 问题内容: 我有两个选择: 如果我首先选择“水果”,该如何使用jQuery?第二个选择仅向我显示水果- 香蕉,苹果,橙子。如果我在第一个选择中选择“鸟”,则第二个选择仅显示“鸟”-老鹰,鹰。等等… 我试图用这段jQuery代码来做到这一点: 不幸的是,它几乎删除了所有内容,而且我不知道如何恢复一些选择。我也阅读了一些有关克隆的内容,但是在这种情况下我不知道如何使用它。 问题答案: $(“#sele

  • 长时间的渗滤者,第一次海报。 }'' 我很感激你抽出时间。