0

好的,所以我有一个对话框,女巫有一个表单来编辑数据库记录,但是相同的表单用于将记录添加到数据库中字段已设置 id

当对话框打开时,它会使用 id 设置此字段,然后我需要找到一种方法让此按钮仅显示是否设置了 id

        $( "#dialog-AL" ).dialog({
        autoOpen: false, 
        height: 530, 
        width: 650, 
        modal: true, 
        buttons: { 

            "Delete": function() {
            var attendance_id = $('#attendance_id').val();
                //more code here
            },

            "Submit": function() { 
            $('#anual_leave_form').submit(); },
            Cancel: function() {                        
                    $('#c1').val("");                       
                    $('#c1').html("");                      
                    $('#from').val("");                     
                    $('#to').val("");                       
                    tinyMCE.get('leave').setContent("");    
                    $('#attendance_id').val("");
                    $('#note_id').val("");                      
            $( this ).dialog( "close" );}}});   

这是开放代码

        $( ".edit" ).click(function() {
        var sub_id = $(this).attr("id");
        var sub_name = $(this).attr("name");
        var dataString = 'attendance_id=' + sub_id + '&note_id=' + sub_name + '&LabourHire=' + LabourHire;
            $.ajax({
                type: "POST",
                url: "<?php echo $process . 'process_editleave.php'; ?>",
                data: dataString,
                dataType: "html",
                cache: false,
                success: function(data) {
                    var result = $(data).filter('#d50').text();
                    $('#c1').val(result);
                    var result1 = $(data).filter('#d51').text();
                    $('#c1').html(result1);
                    var result2 = $(data).filter('#d52').text();
                    $('#from').val(result2);
                    var result3 = $(data).filter('#d53').text();
                    $('#to').val(result3);
                    var result4 = $(data).filter('#d54').text();
                    tinyMCE.get('leave').setContent(result4);
                    $('#attendance_id').val(sub_id);
                    $('#note_id').val(sub_name);
                    $( "#dialog-AL" ).dialog( "open" );                 
                },
                error: function() {
                alert('Error occured');
                }
            });
    });       
4

2 回答 2

2

您可以使用http://api.jqueryui.com/dialog/#option-buttons动态更改按钮$(selector).dialog('option','buttons', object)

在您创建对话框之前,请为按钮创建 2 个对象:

var dialogButtons = {
    "Submit": function() { /*code*/
    },
    Cancel: function() {  /* code*/
    }
}    
var dialogDeleteButton = {
    "Delete": function() { /* code*/
    }
}

然后在打开之前更改按钮:

var buttons;
if ($('#attendance_id').val() != '') {
    buttons = dialogButtons;
} else {
    buttons = $.extend({}, dialogDeleteButton, dialogButtons)
}


$( "#dialog-AL" ).dialog('option','buttons', buttons).dialog('open') 
于 2012-10-30T21:40:42.280 回答
0

只需在您的 AJAX 成功回调中根据需要显示之前创建您的对话框。

    if(condition)
        $( "#dialog-AL" ).dialog({
        autoOpen: true, 
        height: 530, 
        width: 650, 
        modal: true, 
        buttons: { 

            "Delete": function() {
            var attendance_id = $('#attendance_id').val();
                //more code here
            },

            "Submit": function() { 
            $('#anual_leave_form').submit(); },
            Cancel: function() {                        
                    $('#c1').val("");                       
                    $('#c1').html("");                      
                    $('#from').val("");                     
                    $('#to').val("");                       
                    tinyMCE.get('leave').setContent("");    
                    $('#attendance_id').val("");
                    $('#note_id').val("");                      
            $( this ).dialog( "close" );}}});
    else
        $( "#dialog-AL" ).dialog({
        autoOpen: true, 
        height: 530, 
        width: 650, 
        modal: true, 
        buttons: { 
            "Submit": function() { 
            $('#anual_leave_form').submit(); },
            Cancel: function() {                        
                    $('#c1').val("");                       
                    $('#c1').html("");                      
                    $('#from').val("");                     
                    $('#to').val("");                       
                    tinyMCE.get('leave').setContent("");    
                    $('#attendance_id').val("");
                    $('#note_id').val("");                      
            $( this ).dialog( "close" );}}});
于 2012-10-30T21:26:23.103 回答