jQuery .serialize () отправляет входные значения по умолчанию, не обновляется - PullRequest
2 голосов
/ 28 декабря 2011

Я создал простую форму и плагин jQuery для отправки формы в скрипт PHP, который добавит ее в базу данных. Однако это не должно иметь большого значения, так как .serialize () jQuery отправляет форму со значениями ввода по умолчанию, а не со значениями, введенными пользователем.

Вот HTML:

<form id="submit-assignment" method="post" action="URL-HERE">
    <input type="hidden" value="1" name="class_id">
    <div id="assignment-title-parent" style="width: 367px;">
    <input id="assignment-title" class="new-name" type="text" value="Name a new assignment." style="border-right: 0pt none; height: 14px;" name="assignment-title">
    <div id="assignmentadd-step2" class="btn leftflat next-right" style="height: 14px;">Next »</div>
    <div class="clear"></div>
    </div>
    <div id="assignment-desc-parent" class="hidden">
    <textarea id="assignment-desc" class="new-desc" name="assignment-desc" style="">Describe this assignment here. Include directions, resources, etc.</textarea>
    <div style="width: 310px;">
    <div id="assignmentadd-step3" class="btn fr" style="margin-top: 2px;">Next »</div>
    <div class="fl txt-small txt-gray top6">
    <input id="assignment-date" class="new-date hasDatepicker" type="text" value="When is it due?" name="assignment-date">
    </div>
    <div class="clear"></div>
    </div>
    </div>
    <div id="assignment-preview-parent" class="hidden">
    </form>

И Плагин:

jQuery.fn.submitForm = function(callback) {      

    $(this).submit(function(event) {
           event.preventDefault();
            //alert($(this).serialize());
           $.post($(this).attr("action"), $(this).serialize(), function(data) {   

                if(typeof callback == 'function'){
                     callback.call(this, data);
                }

            }, 'json');
    });
};

И использование плагина:

$(document).ready(function() {
    $('#submit-assignment').submitForm(function() { 
        //-> callback...
    });     
});

Спасибо:)

1 Ответ

0 голосов
/ 28 декабря 2011

Сериализация будет принимать любое значение всех полей ввода в форме для отправки. Если вы собираетесь использовать их в качестве заполнителей, вы можете сделать следующее:

<input name="assignment-title" value="" placeholder="placeholder text goes here" />

Кроме того, местозаполнителями являются HTML5, поэтому для своих личных предпочтений я создаю функцию, которая используется в качестве запасного заполнителя. Я отредактировал jsfiddle.net для примера.

http://jsfiddle.net/Rcqry/

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