我有一個問題必須這兒過得在我的應用形式,我的要求是當用戶瀏覽到另一個頁面,而不提交此表一個確認信息將另一個頁面無法正常工作顯示警告用戶使用angular.js.我在下面解釋我的代碼。指令內部形式,而移動到使用Angular.js
<form name="billdata" id="billdata" confirm-on-exit enctype="multipart/form-data" novalidate>
<span class="input-group-addon ndrftextwidth text-right" style="width: 180px;">First Name :</span>
<input type="text" name="itemname" id="contactno" class="form-control" placeholder="user Name" ng-model="first_name">
<span class="input-group-addon ndrftextwidth text-right" style="width: 180px;">Last Name :</span>
<input type="text" name="itemname" id="contactno" class="form-control" placeholder="user Name" ng-model="last_name">
<div style="text-align: center; padding-top: 10px;">
<input type="button" class="btn btn-success" ng-click="addUserData(billdata);" id="addProfileData" value="submit" />
</div>
</form>
而我在我的控制器頁面中有以下代碼。
dashboard.directive('confirmOnExit', function() {
return {
link: function($scope, elem, attrs) {
window.onbeforeunload = function(){
if ($scope.billdata.$dirty) {
return "The form is not saved, do you want to stay on the page?";
}
}
$scope.$on('$locationChangeStart', function(event, next, current) {
if ($scope.billdata.$dirty) {
console.log('next',next,current);
if(!confirm("The form is not saved, do you want to stay on the page?")) {
event.preventDefault();
}else{
console.log('hii');
}
}
});
}
};
});
這裏我得到確認消息時,用戶完全離開頁面site.But我的要求是當用戶瀏覽到另一個頁面,而不提交這種形式的確認消息應該display.Please幫助我。
看一看在這個詳細的解釋你正在尋找什麼。 http://weblogs.asp.net/dwahlin/cancelling-route-navigation-in-angularjs –
@ J-D:我還沒有清楚這一點前訪問過這個網站。 – subhra
如果你不想離開頁面,如果表單是原始的,那麼你需要在if之外也有防止默認的,因爲在這裏當表單不髒時我們不進入條件,然後位置被允許繼續......嘗試在if之外添加event.preventDefault()以及$ dirty並不意味着提交了$ submit屬性,如果你不關心有效性和$有效,如果你這樣做 –