استدعاء وظيفة مسج أخرى إذا تأكيد صحيح
سؤال
أحاول الاتصال بوظيفة مسج أخرى إذا تأكيد صحيحة، إليك الرمز:
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
jQuery("#adminForm_1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
ajaxSubmitMessage: "Client Trip Details Saved",
inlineValidation: false,
success: false,
failure: function () {}
});
} else {
return false;
};
}
});
^ ^ لا يعمل الرمز أعلاه، لكن سترى ما أحاول القيام به ..
المحلول
تحتاج إلى منع الإجراء الافتراضي للمتصفح في النموذج، وهو ما يتم إرساله إلى الخادم بالطريقة التقليدية. أيضاً return false
في نهاية معالج تقديم الخاص بك، أو وضع e.preventDefault()
في البداية:
jQuery("#adminForm_1").submit(function (e) {
e.preventDefault();
...
أو:
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
...
});
}
}
return false;
});
يرى preventDefault
:
يمنع المتصفح من تنفيذ الإجراء الافتراضي. استخدم الطريقة isdefaultprented لمعرفة ما إذا كانت هذه الطريقة تم استدعاؤها على الإطلاق (على كائن الحدث هذا).
كما المذكرة الجانبية return false
لديه نفس التأثير كما preventDefault
بالإضافة إلى أنه يتوقف عن فقاعة الحدث عناصر الوالدين. آلية مسج لتحقيق ذلك في توقف طريقة. بعبارات أخرى، return false
= e.preventDefault + e.stopPropagation
نصائح أخرى
أنت لا تتوقف عن الحدث "العادي" من الانتشار - حاول إضافة return false
بعد .validationEnginge()
الطريقة (بدلا من ذلك نقلها من if
منع):
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm('You have not filled out all of the fields, do you wish to continue?')) {
jQuery("#adminForm_1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "/index.php?option=com_database&view=tripdetails&Itemid=12&client=1&task=save",
ajaxSubmitMessage: "Client Trip Details Saved",
inlineValidation: false,
success: false,
failure: function () {}
});
}
return false;
}
});
او حتى
jQuery("#adminForm_1").submit(function () {
var empty = false;
jQuery(":input", "#adminForm_1").each(function () {
empty = (jQuery(this).val() == "") ? true : empty;
});
if (empty) {
if (confirm( ... )) {
jQuery("#adminForm_1").validationEngine({ ... });
}
}
return false;
});