2013-12-04 3 views
0

Я немного новичок в javascript и вам нужно интегрировать пару плагинов для одного проекта. Есть ли способ получить customer_id (который был получен, когда диалоговое окно было открыто и предложено автозаполнением) в положение кнопки «Создать новое задание».Dialog, datapicker get id

Я хочу закрыть первый диалог после нажатия пользователем «Создать новое задание», а затем открыть новое диалоговое окно, но я хочу передать customer_id из первого диалогового окна во второе диалоговое окно. Может возникнуть диалог и взаимодействие с автозаполнением, которое я, возможно, не понимаю, я просто не могу получить customer_id, прежде чем позвонить функции new_job().

$(function() { 
$("#dialog-name").dialog({ 
    autoOpen: false, 
})}); 

function customer_funct(){ 
$("#dialog-name").dialog("open") 

$(function() { 
var name = $("#name"); 

    $("#name").autocomplete({ 
    source: "suggest_name.php", 
    minLength: 2, 
    select: function(event, ui) { 
    var customer_id = ui.item.customer_id; 

// I am able to get customer_id here, 
//now I need to pass it to the function below. 
} 
}); 



$("#dialog-name").dialog({ 
    autoOpen: false, 
    height: 300, 
    width: 500, 
    modal: true, 
    buttons: { 
    "Create new job": function() { 
     $(this).dialog("close"); 
     cust_name = (name.val()); 


// is there any way to get "customer_id" at this location 
// before I call new_job() function after the user selects customer 
// from the database and clicks "Create new job"? 

     new_job(customer_id, cust_name); 

    }, 
    Cancel: function() { 
     $(this).dialog("close"); 
    } 
    } 
}); 
}); 
+1

Измените фрагмент кода лучше, пожалуйста. Проверьте, выглядит ли он в предварительном просмотре после выполнения копирования-вставки, прежде чем отправлять его. Также создайте скрипт jsfiddle.net, чтобы мы могли легче видеть ваш html и debug. –

+0

Извините, отредактировал, как он представлен на stackoverflow.com сейчас, выглядит лучше – Vaidas

+0

Можете ли вы также опубликовать свой HTML-код. Если возможно, создайте скрипту в [link] (jsfiddle.net) –

ответ

0

Я думаю, что сам отвечу на вопрос после некоторого размышления. Если кто-то другой работает над взаимодействием автозаполнения и диалога jQuery, и если вам нужно открыть новое диалоговое окно (в new_job (customer_id)) с идентификационным значением из предыдущего диалогового окна и закрыть это предыдущее диалоговое окно при успешном завершении:

$(function() { 
$("#dialog-name").dialog({ 
autoOpen: false, 
})}); 


function customer_funct(){ 

$("#dialog-name").dialog("open") 



$(function() { 
var name = $("#name"); 

    $("#name").autocomplete({ 
    source: "suggest_name.php", 
    minLength: 2, 
    select: function(event, ui) { 
     var customer_id = ui.item.customer_id; 
    new_job(customer_id); 
    $(this).val(''); return false; 
    } 
}); 



$("#dialog-name").dialog({ 
    autoOpen: false, 
    height: 300, 
    width: 500, 
    modal: true, 
    buttons: { 
    "Create new job": function() { 

     alert('Please select customer or click "Add New" customer'); 

     }, 
    Cancel: function() { 
     $(this).dialog("close"); 
    } 
    } 
    }); 
}); 

} 
0

По умолчанию выберите параметр Uого события содержит только «ярлык» и свойство «значения»

JQuery UI Autocomplete Success Event

Для того, чтобы получить доступ к настраиваемому свойству вам нужно будет явно добавить его после того, как вам извлеките данные с помощью вызова ajax. Аналогично этому post.