Ich suchte und fand verschiedene Möglichkeiten, um die Senden- Schaltfläche name
+ value
mit jQuery + AJAX an den Server zu senden. Ich mochte sie nicht sehr ...
Eines der besten war die hier vorgestellte Jägerlösung!
Aber ich habe selbst einen anderen geschrieben.
Ich möchte teilen, weil es gut ist und bei Bedarf auch mit Formularen funktioniert, die über Ajax geladen wurden (nach document.ready):
$(document).on('click', 'form input[type=submit]', function(){
$('<input type="hidden" />').appendTo($(this).parents('form').first()).attr('name', $(this).attr('name')).attr('value', $(this).attr('value'));
});
Einfach! Wenn Sie auf die Schaltfläche "Senden" klicken, wird dem Formular ein ausgeblendetes Feld hinzugefügt, das dieselbe name
und value
die Schaltfläche "Senden" verwendet.
BEARBEITEN: Die folgende Version ist leichter zu lesen. Außerdem werden zuvor angehängte ausgeblendete Felder entfernt (im Fall des zweimaligen Absendens desselben Formulars, was bei Verwendung von AJAX durchaus möglich ist).
Verbesserter Code:
$(document).on('click', 'form input[type=submit]', function(){
var name = $(this).attr('name');
if (typeof name == 'undefined') return;
var value = $(this).attr('value');
var $form = $(this).parents('form').first();
var $input = $('<input type="hidden" class="temp-hidden" />').attr('name', name).attr('value', value);
$form.find('input.temp-hidden').remove();
$form.append($input);
});
formobj.submit()
. Ich denke, Klickereignisse sind der richtige Weg.