Изменить значения в отправленной форме и функцию сериализации JQuery

Посмотрите на следующий код. Когда форма отправляется, действительно ли она отправляет значения, которые я ввел, т.е. val (50), или в момент сериализации она просто получает данные из формы на фактической html-странице?

// stop all forms from submitting and submit the real (hidden) form#order
$('form:not(#order)').submit(function(event) {
alert($(this).attr('id'));                                
//event.preventDefault();
if($(this).attr('id')==='quick2a'){

    alert('quick2a being submitted');
    //submitQuick2a();
    $('form#order input[name=custom_channels]').val(50);

    var name = 'het-';
    name += $('form#order input[name=platform]').val('astsk');
    name += '-ga-';
    name += $('form#order input[name=license]').val('floating');

    $('form#order input[name=productname]').val(name);

    $.post('/store/cart/add/ajax/', $('form#order').serialize(), function() {
    document.location.href = '/store/checkout';

    });                 
}else{
//
}

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

Спасибо всем


person Abs    schedule 10.10.2009    source источник


Ответы (2)


Почему бы просто не сконструировать данные напрямую, вместо того, чтобы вводить их в форму, а затем получать значения через сериализацию?

$('form').submit(function(event) {
    if($(this).attr('id')==='quick2a') {
        var data = {
                 'custom_channels': 50,
                 'platform' : 'astsk',
                 'license' : 'floating',
                 'productname' : 'het-astsk-ga-floating'
            };

        $.post('/store/cart/add/ajax/', data, function() {
            document.location.href = '/store/checkout';
        });                                 
    }else{
    //
    }
    return false;
});
person tvanfosson    schedule 10.10.2009
comment
Это на самом деле упростило задачу, так как мне понадобится много форм, и это сократило код, который мне пришлось писать. Спасибо! - person Abs; 11.10.2009

Он получает значения со страницы HTML... но, вызывая .val(...), вы устанавливаете значения на странице HTML, поэтому ваш код будет работать так, как вы этого хотите.

person Greg    schedule 10.10.2009
comment
Выполняется ли указанное выше, если оно находится в скобке $(document).ready(function() {? - person Abs; 10.10.2009