【发布时间】:2015-02-06 05:04:48
【问题描述】:
我正在尝试在不使用 $http 的情况下使用 AngularJS 提交表单。我正在通过 Javascript 检查表单,但不知道检查完成后如何提交。示例代码如下所示:
AngularJS
app.directive('checkLoggedinSubmit', ['account_id', 'session', 'LoginModal',
function(account_id, session, LoginModal) {
return {
restrict : 'A',
link : function(scope, element, attrs) {
element.bind('submit', function(e) {
e.preventDefault();
//If not logged in, show logged in, otherwise subit
if (!account_id && !session.read('account_id')) {
LoginModal.show();
} else {
scope.$eval(attrs.checkLoggedinSubmit);
scope.$apply();
//Tried To use JQuery
//$(e.currentTarget).submit();
}
});
}
};
}]);
HTML 表单
<form role="form" enctype="multipart/form-data" method="post" action="/file/submit" class="well" style="padding: 0px 20px 20px;" check-loggedin-submit >
<div class="form-group">
<input type="file" name="my_file" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" />
</div>
</form>
我试图让 JQuery 提交表单,但抛出了错误。现在有人如何解决这个问题?
【问题讨论】:
-
我认为最简单的方法是将
e.preventDefault();调用移到if语句中,这样它只会在需要时调用。
标签: javascript jquery angularjs forms