AngularJS (13) <form name=""> 區分所屬表格
大家應該都看過表格取名,name
<form name="form1">
這有什麼幫助嗎?當然!當你撰寫多個表格時,如果沒有name,你可能要不時翻找這筆輸入來自哪個表格。
好比說,你做了三個表格:
<body ng-app="app1" ng-controller="Controller1">
<form><input ng-model="username"/></form>
<form><input ng-model="address"/></form>
<form><input ng-model="phone"/></form>
...(這中間你可能還有一長串的html)
{{username}}
{{address}}
{{phone}}
<!--糟糕,這幾個東西來自哪個表格?-->
</body>
這可能造成你不容易修改表格,或是得反覆確認表格的值對應到哪個函式,例如:表格一的輸入要給變數甲,但是表格二的要給乙。挺累人吧?
若是表格加入name,AngularJS會把表格的名稱做為「區域名稱」,就能大大改善前述問題。
<body ng-app="app1" ng-controller="Controller1">
<form name="form1"><input ng-model="form1.username"/></form>
<form name="form2"><input ng-model="form2.address"/></form>
<form name="form3"><input ng-model="form3.phone"/></form>
<p> {{form1.username}} </p>
<p> {{form2.address}} </p>
<p> {{form3.phone}} </p>
<!--馬上看出來自哪個表單,耶!-->
</body>
變數名稱
要小心,ng-model="form1.username" 是指變數叫做form1.username不是username。
<!--HTML-->
{{form1.username}}
<!--JS-->
<script>
alert($scope.form1.username);
</script>
};
所以,ng-model 若沒有加上表格名稱,可能會和一般的變數搞混。
<form>
<input ng-model="text"/>
</form>
<form name="form1">
<input ng-model="text"/> <!--和前一個表格共用變數-->
</form>
<form name="form2">
<input ng-model="form2.text"/>
</form>
<p> text: {{text}} <!--form1 修改到它--> </p>
<p> form1.text: {{form1.text}} <!--一直空白--> </p>
<p> form2.text: {{form2.text}} </p>
text: {{text}}
form1.text: {{form1.text}}
form2.text: {{form2.text}}
留言
張貼留言