it-swarm.com.de

Javascript Ruft Werte aus dem Optionsfeld Mehrfachauswahl ab

Dieser macht mich verrückt. Es muss etwas Einfaches und Dummes sein, das ich übersehen habe. Ich habe ein Mehrfachauswahlfeld in einem Formular. Ich versuche gerade, die Werte zu erhalten, die vorgewählt werden. Wenn ich in meiner Schleife Alert verwende, habe ich kein Problem. Sobald ich versuche, die Werte zu verketten, erhalte ich den Fehler "SelBranch [...]. Selected" ist null oder kein Objekt

      <form name="InventoryList" method="post" action="InventoryList.asp">
          <select name="SelBranch" class="bnotes" size="5" multiple="multiple">
          <option value="All">All</option>
          <option value="001 Renton">001 Renton</option>
          <option value="002 Spokane">002 Spokane</option>
          <option value="003 Missoula">003 Missoula</option>
          <option value="004 Chehalis">004 Chehalis</option>
          <option value="005 Portland">005 Portland</option>
          <option value="006 Anchorage">006 Anchorage</option>
          <option value="018 PDC">018 PDC</option>
          </select>

         <input type="button" name="ViewReport" value="View" class="bnotes" onclick="GetInventory();">

   </form>


   <script language="JavaScript">
       function GetInventory()
       {
         var InvForm = document.forms.InventoryList;
         var SelBranchVal = "";
         var x = 0;

         for (x=0;x<=InvForm.SelBranch.length;x++)
         {
            if (InvForm.SelBranch[x].selected)
            {
             //alert(InvForm.SelBranch[x].value);
             SelBranchVal = SelBranchVal + "," + InvForm.SelBranch[x].value;
            }
         }
         alert(SelBranchVal);
       }


  </script>
21
Soren

Die for-Schleife erhält einen zusätzlichen Lauf. Veränderung

for (x=0;x<=InvForm.SelBranch.length;x++)

zu

for (x=0; x < InvForm.SelBranch.length; x++)
17
amit_g

Hier poste ich die Antwort nur als Referenz, die nützlich werden kann.

<!DOCTYPE html>
<html>
<head>
<script>
function show()
{
     var InvForm = document.forms.form;
     var SelBranchVal = "";
     var x = 0;
     for (x=0;x<InvForm.kb.length;x++)
         {
            if(InvForm.kb[x].selected)
            {
             //alert(InvForm.kb[x].value);
             SelBranchVal = InvForm.kb[x].value + "," + SelBranchVal ;
            }
         }
         alert(SelBranchVal);
}
</script>
</head>
<body>
<form name="form">
<select name="kb" id="kb" onclick="show();" multiple>
<option value="India">India</option>
<option selected="selected" value="US">US</option>
<option value="UK">UK</option>
<option value="Japan">Japan</option>
</select>
<!--input type="submit" name="cmdShow" value="Customize Fields"
 onclick="show();" id="cmdShow" /-->
</form>
</body>
</html>
3
Kaushal Bhatt

Ändern Sie auch Folgendes:

    SelBranchVal = SelBranchVal + "," + InvForm.SelBranch[x].value;

zu

    SelBranchVal = SelBranchVal + InvForm.SelBranch[x].value+ "," ;

Der Grund ist, dass die Variable SelBranchVal zum ersten Mal leer ist

2
web4live