Я несколько новичок в javascript и вам нужно интегрировать пару плагинов для одного проекта. Есть ли способ получить customer_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" );
}
}
});
});
Думаю, я сам отвечу на вопрос, подумав. Если кто-то работает над взаимодействием автозаполнения и диалога 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" );
}
}
});
});
}
По умолчанию параметр ui события select только содержит свойство "label" и "value"
Событие успеха автозаполнения JQuery UI
Чтобы получить доступ к настраиваемому свойству, вам нужно будет явно добавить его после получения данных через вызов ajax. Подобно этому сообщению.