2016-05-19 8 views
0

Trotz der Fakten, die ich fast eine Woche lang wurden nun die Suche, konnte ich nicht ein Weg, einen Weg zu tun, was finde ich wollte, so bin ich hier. Hier ist, was ich tun möchte: Ich habe eine Form, die Dateinamen und ein Kontrollkästchen für jeden Namen angezeigt werden sollen, so dass der Benutzer auswählen, welche Dateien er wählen will. Der Wert jedes Kontrollkästchens ist der Pfad der Datei, auf die es sich bezieht, und jede Checkbox'ID ist der Pfad ihres Dateiverzeichnisses plus eine Nummer. In meinem JavaScript versuche ich, jede ID durch eine Schleife "aufzubauen" und dann auf meine Checkbox zuzugreifen, aber ich kann es nicht funktionieren lassen, und ich werde langsam ein bisschen verzweifelt; also hoffe ich, dass ihr mir helfen könnt. Hier ist mein cshtml Code:Zugang Checkbox durch JavaScript und JQuery mit ihren ID

<div class="modal-dialog modal-lg "> 
<div class="modal-content"> 
    @{ 
     string dir = ""+Path.GetDirectoryName(Model); 
     var listFiles = System.IO.Directory.GetFiles(dir); 
     var nbFiles = listFiles.Count(); 


    } 
    <div class="modal-header"> 
     <h4 style="word-wrap:break-word;" class="modal-title">Fichiers contenus dans le répertoire @dir</h4> 
     <h3>Nombre de fichiers: @nbFiles</h3> 
    </div> 

    @{var nb = 0; var idCheck = "";} 

    <div class="modal-body"> 
     <form class="frmMoveFile"> 
      @foreach (var file in listFiles) 
      { 

       idCheck = "check-"+nb+"-"+dir; 
       <div style="border:ridge"> 
        <p> 
         <b>Fichier</b> : @Path.GetFileNameWithoutExtension(file) 

         <b>Extension :</b> @Path.GetExtension(file) 

         <input class="btn btn-primary" type="checkbox" [email protected] [email protected] /> 
        </p> 
       </div> 
       nb++; 
      } 
     <br /> 
     <br /> 
     </form> 
     <div class="center"> 
      @{                    
       var idBtnOk =Model; 
      }    
      <button value="@dir" class="btnFrmMove">Déplacer fichiers sélectionnés vers l'outbox</button> 
      <input class="btn btn-success" type="submit" value="Supprimer log d'erreur"> 
     </div> 
    </div> 
</div> 

Und hier ist der Javascript-Code:

<script type="text/javascript"> 
    $('.btnFrmMove').click(function() { 
     var path = $(this).attr("value"); 
     alert(path); 
     for (var i = 0; i < 2; i++){ 
      var idCheckBox = "check-" + i + "-" + path; 
      if ($(idCheckBox).is(":checked")) { 
       alert($(idCheckBox).attr("value")); 
      } 
     } 

    }) 
</script> 

bin ich etwas fehlt? Ich habe nicht viel von Web-Entwicklung, bis jetzt getan, damit es ein Anfänger Fehler

+0

Ich glaube, Sie fehlen doppelte Anführungszeichen: ID = @ IDCheck -> ID = "@ IDCheck" – Groben

+0

Es funktioniert nicht besser mit den Anführungszeichen .. –

+0

@ Timothée Können Sie drucken und vergleichen IDs, die Sie machen die Schleife ie Werte von 'idCheckBox' und die in der generierten HTML? – Chintan

Antwort

1

mit dieser Codezeile Das Problem sein könnte:

$(idCheckBox).is(":checked") 

Sie vermissen die #, um die idCheckBox Variable hinzuzufügen wie unten: so

var idCheckBox = "#check-" + i + "-" + path; 
+0

Hallo, danke für deine Antwort, ich hatte die '#' früher entfernt; aber selbst wenn ich es hinzufüge funktioniert es auch nicht .. –

+0

'id = @ idCheck' und' value = @ file'. Setzen Sie diese beiden Attribute in der richtigen Form? Weil ich finde, dass sie Doppelzitat vermissen, wie @Groben erwähnte. Der Wert sollte wie folgt aussehen: id = "..." 'und' value = "..." ' – Ali

+0

ja ich habe es jetzt geändert, also habe ich es ändert auch nichts –

0

, wie ich Zugriff auf meine Checkbox bekommen verwaltet, indem die Änderung ihre IDs zu einfacheren, glaube ich, dass das Problem aus der Tatsache kommen würde, dass ihre waren Sonderzeichen in den alten.