it-swarm.com.de

jquery form.serialize und andere Parameter

Kann ein form.serialize()-Objekt und andere Parameter mit einer einzigen $.ajax()-Anforderung gesendet werden?

Beispiel:

$.ajax({
    type : 'POST',
    url : 'url',
    data : {
        $('#form').serialize(),
        par1 : 1,
        par2 : '2',
        par3: 232
    }
}

Ist dies nicht der beste Weg, um ein Formular zusammen mit anderen Parametern zu übermitteln?.

Vielen Dank

92
KenavR

serialize() wandelt die Formularwerte effektiv in einen gültigen Querstring um. Sie können also einfach an den String anhängen:

$.ajax({
    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}
199
Rory McCrossan

Alternativ können Sie form.serialize () mit $ .param (object) verwenden, wenn Sie Ihre Parameter in einer Objektvariablen speichern. Die Verwendung wäre:

var data = form.serialize() + '&' + $.param(object)

Siehe http://api.jquery.com/jQuery.param für weitere Hinweise.

66
kliszaq

Ich weiß es nicht, aber keiner der oben genannten Dinge hat für mich funktioniert. Dann habe ich dies verwendet und es hat funktioniert:

Im serialisierten Array des Formulars wird es als Schlüsselwertpaar gespeichert

Wir haben den neuen Wert oder die neuen Werte hier in die Formularvariable verschoben und können diese Variable jetzt direkt übergeben.

var form = $('form.sigPad').serializeArray();
var uniquekey = {
      name: "uniquekey",
      value: $('#UniqueKey').val()
};
form.Push(uniquekey);
7
Rohit Arora

Sie können ein Hilfsformular mit jQuery mit dem Inhalt eines anderen Formulars erstellen und dann thath aus anderen Parametern hinzufügen, so dass Sie es nur im Ajax-Aufruf serialisieren müssen.

function createInput(name,value){
    return $('<input>').attr({
        name: name,
        value: value
    });
}
$form = $("<form></form>");
$form.append($("#your_form input").clone());
$form.append(createInput('input_name', 'input_value'));
$form.append(createInput('input_name_2', 'input_value_2'));
....

$.ajax({
    type : 'POST',
    url : 'url',
    data : $form.serialize()
}
0
Felixuko

Wenn Sie Daten mit Formular serialisieren senden möchten, können Sie dies versuchen

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});
0
4302836