Mit jQueries 'submit' - gibt es eine Möglichkeit, zusätzliche Parameter an ein Formular zu übergeben? Ich möchte dies NICHT mit Ajax tun - dies ist eine normale, aktualisierungstypische Formularübermittlung.
$('#submit').click(function () {
$('#event').submit(function () {
data: {
form['attendees'] = $('#attendance').sortable('toArray').toString();
});
});
Dieser hat es für mich getan:
var input = $("<input>")
.attr("type", "hidden")
.attr("name", "mydata").val("bla");
$('#form1').append(input);
basiert auf der Antwort von Daff, hat aber das NAME-Attribut hinzugefügt, damit es in der Formularsammlung angezeigt wird, und hat VALUE in VAL geändert. Überprüfen Sie auch die ID des FORMULARS (in meinem Fall form1).
hat mit dem Firefox-Firebug überprüft, ob das Element eingefügt wurde.
Versteckte Elemente werden wieder in die Formularsammlung aufgenommen, nur schreibgeschützte Felder werden verworfen.
Michel
In Ihrem Fall sollte es ausreichen, Ihrem Formular dynamisch ein weiteres verstecktes Feld hinzuzufügen.
var input = $("<input>").attr("type", "hidden").val("Bla");
$('#form').append($(input));
Sie können dieses sogar benutzen. funktionierte gut für mich
$("#registerform").attr("action", "register.php?btnsubmit=Save")
$('#registerform').submit();
dies wird btnsubmit = Save as GET value ins register.php Formular senden.
Sie können eine jQuery-Funktion schreiben, mit der Sie einem Formular ausgeblendete Felder hinzufügen können:
// This must be applied to a form (or an object inside a form).
jQuery.fn.addHidden = function (name, value) {
return this.each(function () {
var input = $("<input>").attr("type", "hidden").attr("name", name).val(value);
$(this).append($(input));
});
};
Fügen Sie dann das ausgeblendete Feld hinzu, bevor Sie senden:
var frm = $("#form").addHidden('SaveAndReturn', 'Save and Return')
.submit();
Sie müssen das Sendeereignis nicht binden, wenn Sie auf die Schaltfläche "Senden" klicken. Binden Sie einfach das Sendeereignis, und es erfasst das Sendeereignis, unabhängig davon, wie es ausgelöst wird.
Überlegen Sie, was Sie wollen, ist, die sortierbare Datei wie bei Ajax einzureichen. Versuche so etwas zu machen:
var form = $('#event').submit(function () {
$.each($('#attendance').sortable('toArray'),function(i, value){
$("<input>").attr({
'type':'hidden',
'name':'attendace['+i+']'
}).val(value).appendTo(form);
});
});
Ähnliche Antwort, aber ich wollte es nur für einen einfachen/schnellen Test zur Verfügung stellen.
var input = $("<input>")
.attr("name", "mydata").val("go Rafa!");
$('#easy_test').append(input);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
<form id="easy_test">
</form>