Изменить значения формы после нажатия кнопки отправки - PullRequest
16 голосов
/ 23 декабря 2010

[EDIT] После долгих раскопок я обнаружил, что проблема заключалась в том, как я интегрировал CKEditor в свою страницу.Простой и очевидный способ работает в этом случае, как изложено в принятом ответе.

Привет,

Мне нужно изменить значения формы после того, какбыла нажата кнопка отправки, но до фактической отправки.

Я попытался подключиться к событию «отправить» формы и вручную изменить значения текстового поля, но это выглядит такэто на самом деле не меняет представленные значения.

Есть идеи?

Ответы [ 3 ]

18 голосов
/ 23 декабря 2010

Мне любопытно ваше заявление о том, что обработчик submit не работает для вас. Это для меня. Я использовал его в течение многих лет, чтобы заполнить скрытые поля перед отправкой форм; должно работать и для других полей формы.

Пример ( живая копия ):

HTML:

<form id='theForm'
    action='http://www.google.com/search'
    method='GET' target='_new'>
      <label>Search for:
        <input type='text' name='q' id='txtSearch'></label>
      <input type='submit' id='btnSearch' value='Search'>

JavaScript:

window.onload = function() {

  document.getElementById('theForm').onsubmit = function() {
    var txt = document.getElementById('txtSearch');
    txt.value = "updated " + txt.value;
  };
};​

Протестировано и работает в IE6 и IE7 в Windows, а также в Chrome, Firefox и Opera в Linux.


Обновление : Исходя из вашего комментария ниже, вы используете jQuery. Отлично работает и с использованием jQuery:

$('#theForm').submit(function() {
  var txt = $('#txtSearch');
  txt.val("updated " + txt.val());
});

Живой пример Протестировано и работает на одном и том же наборе браузеров. Эта версия использует более открытый поиск, а не id, и все еще работает.

12 голосов
/ 23 декабря 2010

Вам необходимо отключить действие отправки по умолчанию, а затем повторно вручную отправить форму:

$('form').submit(function(e) {
    e.preventDefault();

    // do your processing

    this.submit(); // call the submit function on the element rather than 
                   // the jQuery selection to avoid an infinite loop
});
1 голос
/ 23 декабря 2010

Вы пытались добавить функцию для события click клика на кнопку отправки и изменить значения? Это может сработать, потому что клиентский скрипт будет выполняться первым

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