แบบฟอร์ม 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 มาตรฐาน