2016-03-25 3 views
0

Ich habe zwei Listenfelder, in die ich Objekte mithilfe von jQuery verschieben kann. Eine Zusammenfassung des Codes folgt:Versteckte Felder mit Listbox-Elementen senden, die mit jQuery verschoben wurden

<a href="javascript:moveSelected('from', 'to')">&gt;</a>... 
<a href="javascript:moveSelected('to', 'from')">&lt;</a> 
<a href="javascript:moveAll('to', 'from')" href="#">&lt;&lt;</a> 

Die jQuery-Funktionen:

<select multiple size="10" id="from">...</select> 
<select multiple id="to" size="10" name="subitted array[]">...</select> 

einige Tasten, die beim Verschieben Sie die Elemente aus den oben Listenfelder geklickt

function moveAll(from, to) { 
    $('#'+from+' option').remove().appendTo('#'+to); 
} 

function moveSelected(from, to) { 
    $('#'+from+' option:selected').remove().appendTo('#'+to); 
} 

Ich habe auch die Folgende Funktion, die ich anrufe einreichen:

<form name="selection" method="post" onSubmit="return selectAll()">... </form> 

function selectAll() { 
    $("select option").attr("selected","selected"); 
} 

Aber das gibt nur die Werte im rechten Listenfeld per POST zurück. Ich möchte auch andere Felder im Formular (z. B. versteckte Felder) übermitteln. Wie kann ich das machen?

Vielen Dank.

Antwort

0

Wenn sich Ihre Dropdown-Listen in Ihrem Formular befinden, brauchen Sie keine spezielle Behandlung. Senden Sie einfach Ihr Formular und alle darin enthaltenen Felder an Ihren Controller.

In JS:

$('#formId').submit(); 

in Ihrem HTML:

<button type="submit">Send</button> 

Jede dieser zwei Optionen würde Ihr Problem passen, wenn ich workgly Ihr Problem zu verstehen, lassen Sie es mich wissen.

Auch sollten Sie diesen Code entfernen „onSubmit =“ return selectAll()“und verlassen Form der Arbeit normalerweise abgesendet haben, werden alle Ihre Daten in das Formular

+0

Vielen Dank für Ihre Antwort. Ja, Sie haben Recht in einem Alles, was ich brauchte, war dieser Code. Die versteckten Felder werden gesendet. Weiß nicht, warum ich nicht daran gedacht habe. Aber da ist noch etwas anderes, das ist falsch, nur die ausgewählten Werte werden von der Liste gesendet Nicht alle, die in der Box sind. Der jQuery-Code, schickte sie alle. Irgendwelche Ideen? –

+0

Ich habe es herausgefunden. Nicht sicher, ob dies der beste Weg ist, es zu tun, aber ich habe 'onclick =" selectAll() "' an den Button-Tag und in der SelectAll() -Methode habe ich Javascript, um alle Einträge im zweiten Listenfeld auszuwählen. Alle Werte werden von POST übergeben. Vielen Dank für Ihre Zeit. –

Verwandte Themen