У меня есть три отдельные функции javascript/jquery, все из которых срабатывают после нажатия пользователем кнопки. Одна функция отправляется в обработчик формы. Другая функция создает новую вкладку. Третья функция захватывает идентификатор новой вкладки и сообщения отправляет новую информацию на вкладку с помощью вызова ajax. Все они работают вместе и зависят друг от друга.Несколько функций Javascript, необходимо подтвердить диалог перед выполнением каких-либо
Я пробовал много разных конфигураций, и я не могу понять, как правильно получить диалоговое окно подтверждения (например, «Вы хотите выполнить это действие?») Для работы со всеми тремя из них одновременно. Если пользователь нажимает кнопку " да,». процесс должен стрелять Если пользователь нажимает кнопку„нет“, этот процесс должен умереть Любая помощь очень ценится
Edit:... Я отправил свой код, я уверен, что это действительно noobish , поэтому я не опубликовал его с самого начала. Спасибо!
jQuery(".update_form").click(function(e) { // changed
e.preventDefault();
jQuery.ajax({
type: "POST",
url: "/eemcontrolpanel/process.cshtml",
data: jQuery(this).parent().serialize() // changed
});
return false; // avoid to execute the actual submit of the form.
});
jQuery(".update_form").click(function() {
var form = jQuery(this).parents('form:first');
title = jQuery("input[name='process']", form).val();
$('#tt').tabs('add',{
title:title,
content:'Script starting',
closable:true
});
$('div.panel-body:last').attr("id","tab" + panelIds[panelIds.length - 1] + 1);
panelIds.push(panelIds[panelIds.length - 1] + 1);
});
jQuery(".update_form").click(function (e) {
e.preventDefault();
//var j = jQuery.noConflict();
var form = jQuery(this).parents('form:first');
var fileName = jQuery("input[name='process']", form).val();
jQuery(document).ready(function() {
var XHR;
var stopMe = 1;
var isSame = 0;
var oldhtml;
var tabID = "tab" + panelIds[panelIds.length - 1];
jQuery("#"+ tabID).everyTime(1000, function (i) {
if (stopMe != 2){
XHR = jQuery.ajax({
url: "/eemcontrolpanel/jobs/" + fileName + ".txt",
cache: false,
success: function (html){
if (html === oldhtml){
isSame++;
if (isSame === 10){
stopMe = 2;
}
}
jQuery("#"+ tabID).html("<pre>" + html + "</pre>").scrollHeight;
oldhtml = html;
}
});
} else {
jQuery("#"+ tabID).stopTime();
}
jQuery("#"+ tabID).css({ color: "white" });
});
});
});
Это то, что я закончил делать. Я в основном объединил все функции в одну большую функцию.
var panelIds = new Array();
panelIds.push('0');
jQuery(".update_form").click(function (e) {
if (confirm('Are you sure?')) {
e.preventDefault();
jQuery.ajax({
type: "POST",
url: "/eemcontrolpanel/process.cshtml",
data: jQuery(this).parent().serialize() // changed
});
var form = jQuery(this).parents('form:first');
var title = jQuery("input[name='process']", form).val();
$('#tt').tabs('add',{
title:title,
content:'Script starting',
closable:true
});
$('div.panel-body:last').attr("id","tab" + panelIds[panelIds.length - 1] + 1);
panelIds.push(panelIds[panelIds.length - 1] + 1);
//var j = jQuery.noConflict();
var fileName = jQuery("input[name='process']", form).val();
var XHR;
var stopMe = 1;
var isSame = 0;
var oldhtml;
var tabID = "tab" + panelIds[panelIds.length - 1];
//alert(tabID);
jQuery("#"+ tabID).everyTime(1000, function (i) {
//alert(stopMe);
//add also if stopme=false else quit/end/whatever
if (stopMe != 2){
//alert(stopMe);
XHR = jQuery.ajax({
url: "/eemcontrolpanel/jobs/" + fileName + ".txt",
cache: false,
success: function (html){
//alert(html);
if (html === oldhtml){
isSame++;
//alert(isSame);
if (isSame === 10){
stopMe = 2;
//alert(stopMe);
}
}
jQuery("#"+ tabID).html("<pre>" + html + "</pre>").scrollHeight;
oldhtml = html;
//alert(oldhtml);
}
});
} else {
jQuery("#"+ tabID).stopTime();
}
jQuery("#"+ tabID).css({ color: "white" });
});
} else {
return false;
}
});
Можете ли вы показать нам, что вы до сих пор? Маленький код дает долгий путь, чтобы объяснить ситуацию. –
http://www.w3schools.com/jsref/met_win_confirm.asp должно быть достаточно для ваших целей. Можете ли вы отправить пример своего кода и где вы столкнулись с проблемой? – eithed
Если три действуют последовательно, вы должны поместить его в «завершенный» обратный вызов предыдущего ... Извините, это может показаться немного наивным, но без дополнительной информации нелегко определить проблему ... – Tallmaris