如何默认触发select的选项上的onchange事件?

发布于 2022-09-05 08:02:29 字数 2418 浏览 18 评论 0

html用sturts2生成
图片描述

封装好的方法

function onChangeOption(_this){//参数表联动
    var ticket_class =""//记录当前所选的票类
    var ticket_type_number =new Array();//记录当前所选的票类一共有几种票
    var time_array = new Array();//记录当前所选时间的数组

    

    var ticket_class = $(_this).parent().parent().children('.type_ticket').val();
    
    console.log('当前所选票类的id:'+ticket_class);

    //根据所选票类 循环该类有多少种票
     $('.type_ticket').each(function(index, el) {
        if($(this).val() == ticket_class){
            ticket_type_number.push($(this).parent().index() - 1);
        }         
     });
     console.log('当前所选票类一共有多少种票:'+ticket_type_number);


     //根据票数 循环出每种票的变量

    var this_option = $(_this).children('option:selected').text(); //获取选中值
    time_array = this_option.split('-');

    //循环赋值
     for(var i = 0 ; i < ticket_type_number.length ; i++){
         $("input[name='orderInfo["+i+"].starttime']").val(time_array[0]);
         $("input[name='orderInfo["+i+"].endtime']").val(time_array[1]);
     }




    var id = $(_this).val();//当前值 等待传值
    var iscenicid=$("input[name='providerid']").val(); //游览日期
    var url = "/books/searchTimestock.action";
    $.ajax({
        url: url,
        type: "post",
        dataType: "json",
        data:{"id":id,"iscenicid":iscenicid},
        success: function(jsonData) {
            console.info(jsonData);
             for(var i = 0;i < jsonData.length;i++){
                 $(_this).parent().next().children('.currStock').text(jsonData[i].currstock);
             }    
        },    
         error : function() {    
              alert("异常!");    
         }    
    });
}

现在每次点击,后面的dom都显示正常
图片描述

然而我想已进入界面就默认设置第一项为选中项
但,不论是attr还是prop都无法设置,请问该如何解决这个问题呢?

 var SelectArr = $(".select_st");
  for (var i = 0; i < SelectArr.length; i++) {
      SelectArr[i].options[0];
  }

问题补充:我没有问清楚,其实不是设置第几项选择的问题,而是触发onchage事件的问题,谢谢第一楼!

 var SelectArr = $(".select_st");
  for (var i = 0; i < SelectArr.length; i++) {
      var select = $(SelectArr[i]);
      SelectArr[i].options[0].selected = true;
      onChangeOption(select[0]);
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奈何桥上唱咆哮 2022-09-12 08:02:29

attr应该可以设置。

var selectArr = $('.select_st');
for (var i = 0; i < selectArr.length; i++) {
  var select = $(selectArr[i]);
  select.children('option:first').attr('selected', 'selected');
  select.change();  // 上一句不会触发onchange事件,如果需要触发则需要此行
  // 或者 onChangeOption(select[0]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文