Frage

Das Beispiel ajax Formular

<form method="post">
  <input type="text" name="name" />
  <input type="text" name="email" />
  <select name="group">
    <option value="1">group 1</option>
    <option value="2">group 2</option>
  </select>
  <button type="submit">submit</button>
</form>

Jedes Mal, wenn das Formular angezeigt wird, wird ein Ajax -Anruf gesendet und der Server gibt ein JSON -Objekt wie wie

{"name":"john", "email": "john@some-domain.com", "group": 2}

Ich möchte nicht die mühsame Arbeit erledigen, das Formular manuell mit den JSON -Daten zu füllen, z. B.

$('#myform').fillWith( json );
War es hilfreich?

Lösung

Sie können einfach ein einfaches Plugin erstellen:

jQuery.fn.fillWith = function(input) {
  return this.each(function(){
    var form = this;
    $.each(input, function (key, value) {
      $(form).find('[name='+key+']').val(value);
    });
  });
};

Möglicherweise möchten Sie den Attribut -Selektor optimieren, um nur für zu überprüfen input, select, textarea Elemente, in diesem Beispiel sucht der Selektor nach jedem Element (*[name=foo]).

Möglicherweise müssen Sie auch einen Code hinzufügen, um Optionsfelder korrekt zu verarbeiten.

Überprüfen Sie ein Beispiel mit Ihrem Markup hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top