แบบฟอร์ม AngularJS


แบบฟอร์มใน AngularJS ให้การผูกข้อมูลและการตรวจสอบความถูกต้องของการควบคุมอินพุต


การควบคุมอินพุต

การควบคุมอินพุตเป็นองค์ประกอบอินพุต HTML:

  • องค์ประกอบอินพุต
  • เลือกองค์ประกอบ
  • องค์ประกอบปุ่ม
  • องค์ประกอบ textarea

การผูกข้อมูล

การควบคุมอินพุตจัดเตรียมการผูกข้อมูลโดยใช้ ng-modelคำสั่ง

<input type="text" ng-model="firstname">

ขณะนี้แอปพลิเคชันมีคุณสมบัติชื่อfirstname.

คำng-modelสั่งผูกตัวควบคุมอินพุตกับส่วนที่เหลือของแอปพลิเคชันของคุณ

คุณสมบัติfirstnameสามารถอ้างถึงในคอนโทรลเลอร์:

ตัวอย่าง

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.firstname = "John";
});
</script>

นอกจากนี้ยังสามารถอ้างถึงที่อื่นในแอปพลิเคชัน:

ตัวอย่าง

<form>
  First Name: <input type="text" ng-model="firstname">
</form>

<h1>You entered: {{firstname}}</h1>


ช่องทำเครื่องหมาย

ช่องทำเครื่องหมาย มีค่าtrueหรือ falseใช้ ng-modelคำสั่งในช่องกาเครื่องหมาย และใช้ค่านั้นในแอปพลิเคชันของคุณ

ตัวอย่าง

แสดงส่วนหัวหากมีการเลือกช่องทำเครื่องหมาย:

 <form>
  Check to show a header:
  <input type="checkbox" ng-model="myVar">
</form>

<h1 ng-show="myVar">My Header</h1>

Radiobuttons

ผูกปุ่มตัวเลือกกับแอปพลิเคชันของคุณด้วยng-model คำสั่ง

ปุ่มตัวเลือกที่เหมือนกันng-modelสามารถมีค่าต่างกันได้ แต่จะใช้เฉพาะปุ่มที่เลือกเท่านั้น

ตัวอย่าง

แสดงข้อความตามค่าของปุ่มตัวเลือกที่เลือก:

<form>
  Pick a topic:
  <input type="radio" ng-model="myVar" value="dogs">Dogs
  <input type="radio" ng-model="myVar" value="tuts">Tutorials
  <input type="radio" ng-model="myVar" value="cars">Cars
</form>

ค่าของ myVar จะเป็นdogs, tutsหรือ cars


Selectbox

ผูกกล่องเลือกกับแอปพลิเคชันของคุณด้วยng-model คำสั่ง

คุณสมบัติที่กำหนดไว้ในng-modelแอตทริบิวต์จะมีค่าของตัวเลือกที่เลือกในกล่องเลือก

 ตัวอย่าง

แสดงข้อความตามค่าของตัวเลือกที่เลือก:

<form>
  Select a topic:
  <select ng-model="myVar">
    <option value="">
    <option value="dogs">Dogs
    <option value="tuts">Tutorials
    <option value="cars">Cars
  </select>
</form>

ค่าของ myVar จะเป็นdogs, tutsหรือ cars


ตัวอย่างแบบฟอร์ม AngularJS

ชื่อจริง:

นามสกุล:


form = {"firstName":"John","lastName":"Doe"}

มาสเตอร์ = {"firstName":"John","lastName":"Doe"}


รหัสสมัคร

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{{user}}</p>
  <p>master = {{{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.master = {firstName: "John", lastName: "Doe"};
  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
  };
  $scope.reset();
});
</script>

แอตทริบิวต์novalidateเป็นของใหม่ใน HTML5 มันปิดการใช้งานการตรวจสอบเบราว์เซอร์เริ่มต้นใด ๆ


ตัวอย่างที่อธิบาย

ng-app directive กำหนด แอพพลิเคชั่น AngularJS

ng-controller directive กำหนดตัวควบคุมแอปพลิเค ชัน

คำ สั่ง ng-modelผูกสององค์ประกอบอินพุตกับวัตถุ ผู้ใช้ ในแบบจำลอง

ตัวควบคุม formCtrl ตั้งค่าเริ่มต้นให้กับวัตถุ หลักและกำหนดวิธีการreset ()

วิธีการรีเซ็ต ()ตั้งค่า วัตถุ ผู้ใช้ เท่ากับวัตถุหลัก

คำ สั่ง ng-clickเรียกใช้เมธอดreset() เฉพาะเมื่อมีการคลิกปุ่มเท่านั้น

แอปพลิเคชันนี้ไม่จำเป็นต้องใช้แอตทริบิวต์ novalidate แต่โดยปกติแล้ว คุณจะใช้แอตทริบิวต์นี้ในรูปแบบ AngularJS เพื่อแทนที่การตรวจสอบ HTML5 มาตรฐาน