Можно ли изменить данные формы перед отправкой? - PullRequest
8 голосов
/ 11 октября 2011

Я хотел бы найти любой общий метод для изменения данных перед отправкой форм. Если у меня есть <form>, который содержит <input> определенного типа (класса) и пользователь нажимает кнопку send , я бы хотел преобразовать это входное значение в другой формат, чтобы оно получило сервер в исправленном формате.

Я знаю, что могу установить обработчик submit () для обработки данных, но мне нужно общее решение, которое настраивает этот механизм при загрузке на всех формах страниц и забывает об этом (возможно, некоторые формы отправляются AJAX, другие используют Jquery.validate для отправки и т. Д.)

Ответы [ 3 ]

6 голосов
/ 11 октября 2011

Используйте jQuery для выбора всех элементов формы: $('form') и зарегистрируйте обработчик для события формы submit. Примерно так:

$('form').submit(function(e){
    e.preventDefault()
    var $this = $(this)
    var formData = $this.serialize()
    // do some thing to it
    var yourData = transform(formData)
    $.ajax({
       post: $this.attr('action'),
       data: yourData,
       ...
    })
})

Ссылки

1 голос
/ 11 октября 2011

Возможно, это

$(document).ready(function() {
  $("form").on("submit",function() {
    var form = $(this);
    var field = form.find("input[name=first_name]");
    if (field.length()>0) field.val(field.val().replace("a","b")); 
  });
});
0 голосов
/ 11 октября 2011

Да, а почему нет?

Нажмите кнопку отправки формы, и вы сможете делать все, что захотите, прежде чем вызывать submit ().Чтобы добавить одну и ту же функцию ко всем типам ввода input, затем переберите все элементы ввода с помощью кнопок type = и добавьте в нее свою функцию-обработчик onclick.некоторые используют input type = submit, в то время как другие используют элемент button с вашим собственным javascript, тогда вам придется подстроиться под это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...