Ich verwende x-editable, um Inline-Bearbeitung zu machen. Wenn ich den Wert über ajax und x-editable aktualisiere, um die Antwort zu erhalten, finde ich es sehr schwierig, das div zu überschreiben, das den neuen x-editierbaren Wert enthält.
Zum Beispiel sieht mein x-editierbarer Link so aus:
%Vor%Ich gebe meine Bearbeitung in das Pop-up ein, das x-editable zur Verfügung stellt, und gebe dann den Wert 300.00
einWenn ich meine Änderungen mache, gehe ich wie folgt vor:
%Vor%Wenn x-editable beendet ist, ist der Wert, der auf der Seite angezeigt wird, jetzt 300,00 (ohne das $ dollar-Zeichen). Wie Sie in meinem jquery Code sehen können, versuche ich den Wert zu überschreiben, den x-editable mit $ ('# failure') auf die Seite setzt. Html ('$' + newValue);
Aus irgendeinem Grund funktioniert das nicht. Ich möchte, dass 300,00 $ erscheinen, nicht 300,00.
Was Sie tun müssen, ist zu verhindern, dass die Methode display
Ihre Methode success
überschreibt.
Auf der Serverseite sollte Ihr JSON wie folgt aussehen: {newValue : <value>}
Solange Ihre Antwort das folgende Format hat:
%Vor%und Sie stellen sicher, dass die Antwort vom Erfolgsrückruf zurückgegeben wird:
%Vor% dann x-editable sollte das Feld für Sie aktualisieren. Denken Sie daran, die Schlüssel success
, pk
und newValue
in die Antwort einzubeziehen.
Es folgen zwei Fälle
Fall 1 : Sie möchten den Wert einfach anders anzeigen
Sie können das Render-Ereignis
verwenden %Vor%Fall 2 : Sie möchten den Wert für das Element festlegen, das in der Ajax-Antwort zurückgegeben wird, und nicht für das, was auf der Clientseite festgelegt wurde, z. Uesr eingefügt Wert "Hallo" aber Server konvertiert es in "Hallo" (kleiner Fall) dann tun Sie folgendes
in der Ajax-Antwort wird ein neuer Wert gesetzt, z. {"success":true,"pk":13,"value":"hello"}
verwende folgenden Code
%Vor%Stellen Sie sicher, dass Sie das Objekt mit dem genauen Namen newValue
zurückgeben