续上onchange

<div data-role="fieldcontain" class="section">
                <label for="shop_close1">
                  <span class="inputType">选择1span>
                label>
                <select name="shop_close1" id="shop_close1" data-inline="true" required onchange="spMul.style.display=this.options[this.selectedIndex].id=='day'?'':'none'; goFunction(event,1)">
                  <option>option>
                  <option>option>
                  <option>option>
                  <option>option>
                  <option>option>
                  <option id="day">option>
                  <option id="day">option>
                  <option id="day">option>
                  <option id="day">option>
                  <option id="day">option>
                  <option id="day">option>
                select>
              div>
              <span id="spMul" style="display:none; column-count: 3">
                <div data-role="fieldcontain" class="section">
                  <label class="ui-select">
                    <span class="inputType">选择2span>
                  label>
                  <select name="shop_close2" id="shop_close2" data-line="true" onchange="goFunction(event,2)">
                    <option>option><option>option><option>option><option>option>
                    <option>option><option>西option><option>option><option>option>
                  select>
                div>
              span>
            div>
           <input type="hidden" name="shop_close" id="shop_close" value="" />

只有id=day的option被选中的时候触发id=spMul的"选择2"被触发的时候才会有数据传递 比如: 二·左

一旦选择1里面的非id=day单独选择的时候无任何数据传送到input里面

请问原因如何改正,谢谢

function goFunction(e,n) {
    if (n==1) {
      o = e.target.value;
    }
    if (n==2) {
      p = e.target.value;
    }
    document.getElementById("shop_close").value = o + "・" + p;
  }

你在onchange里面把修改spmul样式的代码放到gofuction方法里面去。你可以在gofunction里面把o和 p输出来看看。

js那里o和p提前定义了吗,如果没有就会报错,因为在n=1的时候p没有定义
这样试试

function goFunction(e, n) {
    let o, p;  // 这样选了非id=day的就会是某值·undefined,不要undefined也可以都声明为空字符串,let o = "", p = "";
    if (n === 1) {
        o = e.target.value;
    }
    if (n === 2) {
        p = e.target.value;
    }
    document.getElementById("shop_close").value = o + "・" + p;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632