Отправлять форму не аяксом, если выбран файл

This commit is contained in:
isqua 2015-02-07 19:33:18 +03:00
parent ec6eb34e22
commit 5faabf04bd

View file

@ -38,12 +38,25 @@ AjaxComments.prototype.listenFirstComments = function() {
*/ */
AjaxComments.prototype.onSubmit = function(event) { AjaxComments.prototype.onSubmit = function(event) {
var $form = $(event.target); var $form = $(event.target);
var proc;
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
if ($form.hasClass('reply-form')) { if ($form.hasClass('reply-form')) {
this.submit($form);
}
};
/**
* Проверяет, выбран ли файл. Если да отправляет форму с перезагрузкой, иначе аяксом 
* @param {jQuery} $form Элемент формы
*/
AjaxComments.prototype.submit = function($form) {
var proc;
if (this.isFileSelected($form)) {
$form.submit();
} else {
proc = new AjaxCommentProcessor($form); proc = new AjaxCommentProcessor($form);
} }
}; };
@ -63,7 +76,7 @@ AjaxComments.prototype.onKeypress = function(event) {
$form = $(event.target).closest('.reply-form'); $form = $(event.target).closest('.reply-form');
if ($form.length) { if ($form.length) {
proc = new AjaxCommentProcessor($form); this.submit($form);
} }
} }
}; };
@ -77,6 +90,16 @@ AjaxComments.prototype.isProperKeys = function(event) {
return (event.keyCode === 10 || event.keyCode === 13) && (event.ctrlKey || event.metaKey); return (event.keyCode === 10 || event.keyCode === 13) && (event.ctrlKey || event.metaKey);
}; };
/**
* @param {jQuery} $form
* @return {Boolean} Выбран ли файл
*/
AjaxComments.prototype.isFileSelected = function($form) {
var files = $form.get(0).elements.attach.files;
return Boolean(files && files.length);
};
/** /**
* Создаётся при каждой отправке комментария * Создаётся при каждой отправке комментария
* @param {jQuery} $form Элемент формы, на которой это произошло * @param {jQuery} $form Элемент формы, на которой это произошло