多个选择以逐个单击选项弹出一个新窗口

时间:2016-07-22 13:10:26

标签: javascript html onclick popupwindow multipleselection

我需要逐个点击多个选项来弹出网址。这意味着当我点击一个选项时,它应弹出一个新窗口,用户可以在其中提交一些数据并返回到之前的html窗口。现在用户再次选择一个选项(Ctrl +单击),它应该打开一个新的弹出窗口。但弹出网址包含选项值。

<select multiple="multiple" id="FldSel" name="FldSel" size=15 onchange="callInstrumentField();"  >                                                                  
    <option isred= "A" value="1">1</option>
    <option isred= "A" value="2">2</option>
    <option isred= "A" value="3">3</option>                                                                                             
    <option isred= "A" value="4">4</option>
</select>

// Javascript函数是:

 function callInstrumentField()
 {

       var url;
       var w;
       var InstAct;
       var InstName = document.ATTForm.instname.value.replace(/\s/gi,"");
       var sel = document.getElementById('FldSel');
       var selected = sel.options[sel.selectedIndex];
       var FldSelVel = sel.value;
       var FldType = selected.getAttribute("isred");
       var x2 = document.ATTForm.InstrAction.value;

       if(InstName=="")
             {
             alert("Please Enter Instrument Name");
             document.getElementById("instname").focus();
             return false;
        }
        else{
            if(x2=="UPDATE")
                {
                InstAct= 'SELECT';
            }
            else
                {
                InstAct=x2;
            }
       //var x2="SELECT";
            if (FldType == "Dropdown")
                {
                url = '?func=lsdms.ViewInstrumentFldSel&InstrAction='+InstAct+'&InstruMntNo='+FldSelVel;
                w = window.open(url,"","height=340,width=680,scrollbars=yes,resizable=yes,menubar=no,toolbar=yes,status=yes");

                if ( w.focus )
                    {
                    w.focus();
                }

            }
        } 
}

但它没有以理想的方式运作。每次传递之前在脚本中选择的选项值。

1 个答案:

答案 0 :(得分:1)

我尝试使用正确选择的选项代码,我发现它没有任何问题。

如果您通过Chrome工具进行调试并在

上添加断点
var FldSelVel = sel.value;

行你应该能够查询这些值。

<强>更新

可以通过迭代选项并测试其选定值来检测多重选择

for (x=0;x< sel.options.length;x++)
  {
    if(sel.options[x].selected)
      {
        alert(sel.options[x].value);             
      }
  }

如果您需要在点击时触发事件,可以使用jQuery

$('#FldSel').on('change', function() {
  var value = $(this).val();
  alert(value);
});

现在可以通过调用来显示弹出窗口,而不是警报。