Отправить форму с AJAX и установить поле ввода только для чтения - PullRequest
0 голосов
/ 25 марта 2011

У меня проблема с отправкой формы с помощью AJAX, распечатайте строку ответа под формой и установите для ввода только чтение.

Мой код:

$('#save').click(
        function(){
            var form_data ={
            name: $('#name').val(),
            ajax:'1'
            };
            $.ajax({
                url:"page.php",
                type: 'POST',
                data: form_data,
                success: function(data){
                         $('#form_message').html(data);
                }
            });
            $('#name').toggleClass('bgcolored');
            $('#save').addAttr('readonly');
            $('#save').toggleClass("invisible");        
            return false;
        }

Если я удалю строку$('#save').addAttr('readonly'); скрипт работает: он отправляет значения, перехватывает ответ и печатает его в div form_message и переключает два класса в поле ввода #name и на кнопке отправки #save.Если я поставлю $('#save').addAttr('readonly'); (там или в функции успеха), страницы перезагрузятся и сообщение будет потеряно.

Как я могу это исправить?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 25 марта 2011

Работает!

$('#name').attr('readonly','true');

сделать это readoly без перезагрузки страницы!

P.S. Я допустил ошибку в вопросе, очевидно, тег «только для чтения» должен был применяться к полю ввода #name, а не к кнопке отправки.

Спасибо!

0 голосов
/ 27 октября 2016

В наши дни с jQuery 1.6.1 или выше рекомендуется использовать .prop ()

$("#fieldName").prop("readonly", true);
0 голосов
/ 25 марта 2011

Попробуйте использовать

$('#save').attr('readonly','true');

и удалить

return false;
...