Другое название кнопки при открытии диалога jquery - PullRequest
0 голосов
/ 24 мая 2010

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

Я также хочу отправить форму с этой кнопкой, когда нажимаю клавишу ввода, независимо от того, где я нахожусь в форме.* Спасибо.

Ответы [ 3 ]

1 голос
/ 26 мая 2010
$('.ajouter-tache')
        .click(function() {
        if($(this).attr('id_tache')!=""){ 
            $('.ui-dialog-buttonpane button:eq(0) .ui-button-text').each(function(e, f){
                $(f).html('Modifier la tache');
            })
        }
        else {
            $('.ui-dialog-buttonpane button:eq(0) .ui-button-text').each(function(e, f){
                $(f).html('Ajouter une tache');
            })
        };
    })

Вот то, что я сделал, это работает, но я новичок и не теряю времени на работу над jQuery, это отстой, особенно избыточность селектора, и каждый из них бесполезен (но я не знаю, как взять только этот элемент.)

0 голосов
/ 24 мая 2010

Хорошо, извините, я не думаю, что мой код был необходим, но похоже, что он ^^

$("#dialog-form").dialog({
            autoOpen: false,
            height: 560,
            width: 400,
            modal: false,
            buttons: {
                'Add task': function() {
                    $(".ajax").trigger('submit');
                },
                'Back': function() {
                    $("#dialog-form").dialog('close');
                }
            },
            open: function() {
                $(this).parents('.ui-dialog-buttonpane button:eq(0)').focus(); 
            },
            close: function() {
                allFields.val('').removeClass('ui-state-error');
            }
        });

$(".ajax").submit(
        function(e) {
        var datas = $(this).serialize();          
        $.ajax({
            type: 'POST',      // envoi des données en POST
            url: 'Planning.php?action=ajoutTache',    
            data: datas,     // sélection des champs à envoyer
            success: function() {
                $("#dialog-form").dialog('close');
                location.reload();
            }
        });
        return false; // Pour empêcher le submit vers la page 'action'
    });

Я хочу, чтобы кнопка «добавить задачу» стала «редактировать задачу», когда задача уже существует.

0 голосов
/ 24 мая 2010

Вам нужно будет добавить немного больше информации о том, как «редактировать эту задачу» будет работать, потому что есть несколько разных реализаций от серверной до клиентской (заполняется при разборе - формы ajax или нет? И т. Д.)

Если вы запустили фактическую работу «отправить» для события отправки, вы можете воспользоваться этим, когда пользователь нажмет ENTER в форме. (Кроме текстовой области, конечно)

<form id="myForm" onSubmit="return yourCoolSubmitFunction();" >

или

$( function() {
    $('#myForm').submit(function() {
       // code here that can validate or simply
       return true; // submit the form
       // return false won't submit, which is good for validating input
    });
});

Что касается текста кнопки, если форма заполняется как «форма редактирования» через код на стороне сервера, то вы можете просто изменить метку кнопки, а затем при первом создании html.

Если это ajax, вы можете обновить кнопку при загрузке данных формы.

Если я все еще не бью тебя по голове, возможно, добавляешь элемент формы для проверки? как <input type="hidden" name="isEdit" value="1" /> если в режиме редактирования вы можете проверить? if( $('#myForm input[name=isEdit]').val() == 1 ) ...

...