2016-07-22 26 views
0

Ich habe eine Anforderung, eine URL beim Klicken auf mehrere Auswahloptionen nacheinander aufzurufen. Das bedeutet, wenn ich auf eine Option klicke, sollte ein neues Fenster geöffnet werden, in dem der Benutzer einige Daten senden und zum vorherigen HTML-Fenster zurückkehren kann. Nun kann der Benutzer erneut eine Option auswählen (Strg + Klick) und es sollte ein neues Popup-Fenster geöffnet werden. Die Popup-URL enthält jedoch Werte der Option.Mehrfachauswahl, um ein neues Fenster zu öffnen, wenn man Optionen nacheinander anklickt

<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-Funktion ist:

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(); 
       } 

      } 
     } 
} 

Aber es ist nicht in der gewünschten Weise zu arbeiten. Jedes Mal, wenn es zuvor ausgewählte Optionswerte in Skript übergeben.

Antwort

1

Ich habe versucht, Ihren Code um die richtige Auswahl Option und ich finde nichts falsch damit.

Wenn Sie über Chrom-Tools debuggen und einen Haltepunkt auf dem

var FldSelVel = sel.value; 

Linie addieren Sie die Werte abfragen können sollten.

aktualisieren


Multi wählen Sie durch Iterieren über die Optionen erfasst werden kann und einen Test der ausgewählte Wert

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

Wenn Sie auf Sie auf ein Ereignis auslösen möchten, können Sie jQuery verwenden

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

Statt th Sie können jetzt den Anruf tätigen, um das Popup anzuzeigen.

+0

Das Problem ist mit der Mehrfachauswahloption.Wenn ich die mehreren Werte auswähle, übergibt es immer den ersten ausgewählten Wert. –