2012-04-04 5 views
3

verschoben werden muss. Ich verwende MVC3, EF Model zuerst in meinem Projekt.Klicken Sie bei einem Klick darauf, dass mindestens eine Zeile in eine benutzerdefinierte Tabelle mit Jquery

Ich habe eine Ansicht mit 4 Tabellen und dann habe ich ein CustomPickedTable,, wenn ein Benutzer auf eine Zeile innerhalb dieser vier Tabellen, die Zeile bewegt zu CustomPickedTable Tabelle dies der Code für sie ist:

<script type="text/javascript"> 
     $(function() { 
      $('.questionsForSubjectType tbody tr').click(function() { 
       var origin = $(this).closest('table').attr('id'); 
       $(this) 
     .appendTo('#CustomPickedTable tbody') 
     .click({ origin: origin }, function (evt) { 
      $(this).appendTo('#' + evt.data.origin); 
       }); 
      }); 
     }); 
</script> 

Was ich Ich suche nach einer Art Validierung, dass wenn ein Benutzer auf den Submit-Button klickt, es eine Regel geben sollte, die sicherstellt, dass mindestens eine Zeile in jeder dieser 4 Tabellen nach CustomPickedTable verschoben werden muss, wenn nicht das Formular nicht gepostet, sondern übergeben wird der Benutzer eine Fehlermeldung.

Dies ist eines meiner 4 Tabellen, diese durch eine foreach-Schleife mit rasiermesser

<div class="questionsForSubjectType" id="questionsForSubjectType_1">    
       <table class="box-style2" id="RandomID_c5b9bc7a-2a51-4fe5-bd3a-75b4b3934ade"> 
       <thead> 
        <tr> 
        <th> 
        Kompetens 
        </th> 
        </tr> 
       </thead> 
        <tbody> 
        <tr> 
        <td data-question-id="16">Har konsulten F&#246;rm&#229;ga att l&#228;ra sig nytt?</td> 
        </tr> 
        </tbody> 
        <tbody> 
        <tr> 
        <td data-question-id="17">Har konsulten r&#228;tt kompetens?</td> 
        </tr> 
        </tbody> 
       </table> 
    </div> 

Meiner benutzerdefinierten Tabelle erzeugt erhält in MVC:

<table id="CustomPickedTable" class="box-style2"> 
<thead><tr><th>Choosen Questions</th></tr></thead> 
<tbody> 
</tbody> 
</table> 

Vielen Dank im Voraus!

+0

Können Sie HTML auch posten? Ich würde eine Klasse oder einen Datenwert für die Mengen verwenden, sie A, B, C, D nennen und dann submit, ich würde sicherstellen, dass es in CustomPickedTable jeweils eine davon gibt. –

+0

Sie möchten also im Grunde sicherstellen, dass '# CustomPickedTable' beim Einreichen mindestens eine Zeile im Körper haben muss, richtig? –

+0

nein Ich möchte beim Einreichen, dass mindestens eine Zeile in jeder dieser 4 Tabelle in #CustomPickedTable verschoben werden muss, was den Benutzer dazu bringt, in jeder dieser 4 Tabellen eine Zeile zu wählen, um das Formular abschicken zu können. Benutzer sollte nicht in der Lage sein, eine Tabelle zu überspringen – Obsivus

Antwort

1

Es könnte einen besseren Weg geben.

Aber ich würde ein Datenattribut oder eine Klasse zu jedem der TD hinzufügen, die Sie verschieben können, und bei der Übergabeprüfung für jeden erforderlichen Wert.

ein Beispiel hier Erstellt: http://jsfiddle.net/y35Qf/1/

Basicly i hinzugefügt, um eine Attributdaten-Reihe genannt, und jede Tabelle einen eigenen Wert hat, auf i jeder dieser Werte erfordern einreichen im CustomPickedTable sein - wenn nicht ich alarmieren dass etwas fehlt - sonst Alert-Erfolg.

Sie können einfach hinzufügen, so dass Sie alarmieren, welche Zeilen fehlschlagen oder eine andere Validierung, die Sie möchten.

Ist das, was Sie wollten?

+0

Großartig! Aber es gibt nur ein Problem, da meine Tabellen von foreach-Schleifen generiert werden und innerhalb dieser foreach-Schleifen Zeilen generiert. Ich muss einen Weg finden, um Datenreihen für jede Tabelle die gleiche Nummer geben zu können. – Obsivus

+0

Könnten Sie die foreach-Schleife posten? Ich würde denken, es ist nur ein Int I erstellen, die die Schleifen zählt (wo Sie die TR erstellen) und fügt den loopCounter in :) –

+0

Ich dachte, das Problem hat nichts mit meiner Frage zu tun, aber da die Tabellen von a gruppiert wurden Entity CoreValue und die Fragen wurden CoreValue zugeordnet, ich habe nur Daten-Wert zu meinen corevalueIDs deklariert und es löste mein Problem, Danke für die Antwort, es funktioniert perfekt! – Obsivus

Verwandte Themen