Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要关于我的jQuery脚本的帮助吗_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 需要关于我的jQuery脚本的帮助吗

Javascript 需要关于我的jQuery脚本的帮助吗,javascript,jquery,ajax,Javascript,Jquery,Ajax,我能够根据您可以看到的选定类别创建一个双元下拉子类别 现在,我的问题是,如果类别在加载时定义了一个由请求定义的选定值,就像(注意发布的\u parent\u id请求)。如果我的jQuery如下所示,如何调用我的(get\u child\u categories.php?parent\u id=6): $(document).ready(function($) { var list_target_id = 'list_target'; //first select list ID var

我能够根据您可以看到的选定类别创建一个双元下拉子类别

现在,我的问题是,如果类别在加载时定义了一个由请求定义的选定值,就像(注意发布的\u parent\u id请求)。如果我的jQuery如下所示,如何调用我的(
get\u child\u categories.php?parent\u id=6
):

$(document).ready(function($) {
  var list_target_id = 'list_target'; //first select list ID
  var list_select_id = 'list_select'; //second select list ID
  var initial_target_html = '<option value="">Please select a subcategory...</option>'; //Initial prompt for target select

  $('#'+list_target_id).html(initial_target_html); //Give the target select the prompt option

  $('#'+list_select_id).change(function(e) {
    //Grab the chosen value on first select list change
    var selectvalue = $(this).val();

    //Display 'loading' status in the target select list
    $('#'+list_target_id).html('<option value="">Loading...</option>');

    if (selectvalue == "") {
        //Display initial prompt in target select if blank value selected
       $('#'+list_target_id).html(initial_target_html);
    } else {
      //Make AJAX request, using the selected value as the GET
      $.ajax({url: 'get_child_categories.php?parent_id='+selectvalue,
             success: function(output) {
                //alert(output);
                $('#'+list_target_id).html(output);
            },
          error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status + " "+ thrownError);
          }});
        }
    });
});
$(文档).ready(函数($){
var list_target_id='list_target';//首先选择list id
var list_select_id='list_select';//第二个选择列表id
var initial_target_html='请选择子类别…';//目标选择的初始提示
$(“#”+list_target_id).html(initial_target_html);//给目标选择提示选项
$(“#”+列表选择id)。更改(函数(e){
//在第一次选择列表更改时获取所选值
var selectvalue=$(this.val();
//在目标选择列表中显示“加载”状态
$('#'+list_target_id).html('Loading…');
如果(选择值==“”){
//如果选择空值,则在目标选择中显示初始提示
$(“#”+list_target_id).html(初始的_target_html);
}否则{
//使用所选值作为GET,发出AJAX请求
$.ajax({url:'get_child_categories.php?parent_id='+selectvalue,
成功:功能(输出){
//警报(输出);
$('#'+list_target_id).html(输出);
},
错误:函数(xhr、ajaxOptions、thrownError){
警报(xhr.status+“”+thrownError);
}});
}
});
});

我的问题很清楚吗?我现在还在学这种东西。如果在加载页面时预先选择了类别下拉列表,则在
if(selectvalue==“”)
语句中可以定义一些内容?

首先要做的是将AJAX功能移出
.change
事件

仅当dwopdown值更改时,更改事件才会激发,并且如果下拉列表以选定值呈现,则更改事件不会处理该下拉列表

将其作为单独的函数,并在page load和on.change事件上调用它

**不是一个完整的代码**

$(function(){
    var dropdown = $('#'+list_select_id);
    if (dropdown.val() !== "") {
        initiateAJAX(dropdown.val());
    }
    dropdown.change(function() {
        initiateAJAX(this.value);
    }); 

    function initiateAJAX(param) {
    }
});

最简单的方法是在加载DOM后手动触发更改事件

// Assuming that -1 is the default selected value
var selectvalue = $('#'+list_select_id).val();
if(selectvalue != "-1")
{
    $('#'+list_select_id).trigger("change");
}
将代码追加到
$(document.ready(function(){…})

因此,您的代码如下所示

$(document).ready(function($) {
  var list_target_id = 'list_target'; //first select list ID
  var list_select_id = 'list_select'; //second select list ID
  var initial_target_html = '<option value="">Please select a subcategory...</option>'; //Initial prompt for target select

  $('#'+list_target_id).html(initial_target_html); //Give the target select the prompt option

  $('#'+list_select_id).change(function(e) {
         //  ... your logic here

    });

    // Check if value is prefilled. 
    var selectvalue = $('#'+list_select_id).val();
    // Assuming that -1 is the default value
    if(selectvalue != "-1")
    {
        $('#'+list_select_id).trigger("change");
    }
});
$(文档).ready(函数($){
var list_target_id='list_target';//首先选择list id
var list_select_id='list_select';//第二个选择列表id
var initial_target_html='请选择子类别…';//目标选择的初始提示
$(“#”+list_target_id).html(initial_target_html);//给目标选择提示选项
$(“#”+列表选择id)。更改(函数(e){
//…你的逻辑在这里
});
//检查值是否已预填充。
var selectvalue=$('#'+列表选择id).val();
//假设-1是默认值
如果(选择值!=“-1”)
{
$('#'+list_select_id).trigger(“change”);
}
});

真管用!非常感谢您指出具体细节。