2017-05-24 22 views
0

我有一個簡單的表格分爲3個部分。在第一部分我收集名字,姓氏和電子郵件。HTML5驗證與鏈接和angular.js

我試圖使用type="email"required提供驗證反饋,但是我不使用input submit直到表單的最後一部分。一旦用戶點擊

<a ui-sref="form.select" class="btn btn-block btn-info" > 
      Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> 
     </a> 

我想這個點擊觸發驗證的方式通常會提交

形式分爲三個部分中的每個部分僅出現。

即使禁用此按鈕,直到用戶填寫字段。

以下是完整的表單代碼

<div class="form-group"> 
    <label for="first-name">First Name*</label> 
    <input type="text" class="form-control" name="Fname" placeholder="Enter first name" ng-model="formData.Fname" required> 
</div> 

<div class="form-group"> 
    <label for="last-name">Last Name*</label> 
    <input type="text" class="form-control" name="Lname" placeholder="Enter last name" ng-model="formData.Lname" required> 
</div> 

<div class="form-group"> 
    <label for="email">Email*</label> 
    <input type="email" class="form-control" name="email" placeholder="Enter a valid email address" ng-model="formData.email" required> 
</div> 

<div class="form-group row"> 
    <div class="col-xs-6 col-xs-offset-3"> 
     <a ui-sref="form.select" class="btn btn-block btn-info" > 
      Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> 
     </a> 
    </div> 
</div> 

問題

所以我的問題,如何讓HTML 5的驗證點擊按鈕的工作,以及如何禁用按鈕,直到場正確填充?

回答

0

你可以在下一節鏈接更改爲<button>和使用ng-disabledng-disabled不適用於<a>元素。 要麼寫ng-disabled中的所有條件,要麼寫得太長/複雜,寫一個控制器函數來檢查。

<button ui-sref="form.select" ng-disabled="myform.first_name.$invalid || ...."> 
    Next Section 
</button> 

<button ui-sref="form.select" ng-disabled="isButtonDisabled()"> 
    Next Section 
</button> 

如果您必須使用<a>,則必須自行禁用鏈接。例如:

.disabled { 
    cursor: not-allowed; 
} 

<a ng-click="disabled()" ng-class="{disabled: addInviteesDisabled()}">Add</a> 

$scope.disabled = function() { 
    if($scope.addInviteesDisabled) { return false;} 
}  
+0

我可以使用按鈕,這是不是一個問題,我看看使用ng-disabled =「myform.first_name。$ invalid || ....」,因爲它眨眼這是最​​好的解決方案 – Beep

0

您可以使用此作爲參考:

<form name="upSign"> 

     First Name: 
      <input type="text" name="firstName" placeholder="Enter your first name" ng-model="user.first_name" required> 


     Last Name: 
      <input type="text" name="lastName" placeholder="Enter your last name" ng-model="user.last_name" required> 


     Email: 
      <input type="email" name="mailId" ng-model="user.email_id" placeholder="Enter your Email" required> 

    </form> 

    <p ng-show="upSign.firstName.$invalid || upSign.mailId.$invalid || upSign.lastName.$invalid" style="color: red">* Invalid</p> 


    <button class="button button-full button-positive" ng-disabled="upSign.firstName.$invalid || upSign.mailId.$invalid || upSign.lastName.$invalid || upSign.firstName.$untouched || upSign.mailId.$untouched || upSign.lastName.$untouched" ng-click="register()">Register Me</button> 
+0

這種劑量不起作用,因爲它觸發提交而不是下一節 – Beep

+0

但是如果它被禁用,它會如何觸發提交? –

+0

只有在驗證不正確時纔會禁用 – Beep