如何验证离子框架中的组合框

时间:2015-09-02 10:20:07

标签: angularjs html5 ionic-framework ionic

我正在使用离子框架创建移动应用程序。 我有一个我为混合移动应用程序创建的表单..

我需要检查用户是否填写了表单中的所有字段..

我的代码......

<ion-view view-title="Request">
  <ion-content>

  <form novalidate>
      <div class="list">

        <label class="item item-input item-select">
          <div class="input-label">
            Request Type:
          </div>
          <select>
            <option selected>--Please select--</option>
            <option>Car Pass Ticket</option>
            <option>Seminar Pass</option>
            <option>Identy Card</option>
          </select>
        </label>

           <label class="item item-input">
            <textarea placeholder="Description" name="description" ng-minlength="20" required ></textarea>
          </label>
          <br/>
        <!--   <div class="padding">
          <button class="button button-positive" ng-click="submit(description)">
            Submit
          </button>
          </div> -->
            <div class="padding">
            <button class="button button-positive" ng-disabled="request.$invalid" ng-click="submit(description)">
            Submit
            </button>
        </div>
      </div>
  </form>
  </ion-content>
</ion-view>

有人可以帮我验证组合框..

任何形式的帮助都受到高度赞赏......

2 个答案:

答案 0 :(得分:2)

这应该有效

<form name="register_form"  ng-submit="submitDetails(user)" novalidate=""> 
    <div class="list">
        <label class="item item-input item-floating-label" style="position:relative;">
            <span class="input-label">First Name</span>
            <input type="text" name="user_first_name" placeholder="First Name" ng-model="user.firstName" ng-required="true">
            <p ng-show="register_form.user_first_name.$invalid && !register_form.user_first_name.$pristine" class="help-block">You name is required.</p>
        </label>
        <!--omitted-->
        <input type="submit" class="button button-royal"  value="register">
    </div>
</form>

表格名称为register_form,

<form name="register_form"  ng-submit="submitDetails(user)" novalidate="">

输入名称为user_first_name,

<input type="text" name="user_first_name" placeholder="First Name" ng-model="user.firstName" ng-required="true">

因此验证必须通过这些字段

 <p ng-show="register_form.user_first_name.$invalid && !register_form.user_first_name.$pristine" class="help-block">You name is required.</p>

模型本身没有$ invalid或$ pristine属性,所以它没有意义

对于电话领域

<input type="number" name="user_phone" placeholder="Phone No" ng-model="user.phone" ng-minlength="10" ng-maxlength="10" ng-required="true">
<span class="help-block" ng-show="register_form.user_phone.$error.required || register_form.user_phone.$error.number">Valid phone number is required</span>
<span class="help-block" ng-show="((register_form.user_phone.$error.minlength || register_form.user_phone.$error.maxlength) && register_form.user_phone.$dirty) ">phone number should be 10 digits</span>

答案 1 :(得分:1)

试试这个:

1)为表单提供名称属性

 <form name="myForm" novalidate>

2)在你的范围内声明请求类型,如下所示:

$scope.requestType = [
    { code: "carPass", name: "Car Pass Ticket" },
    { code: "seminarPass", name: "Seminar Pass" },
    { code: "identityCard", name: "Identy Card"}
];

3)声明这样的选择框:

<select name="requestType" ng-model="request" required
    ng-options="request.code as request.name for request in requestType" >
    <option value="">--Please select--</option>
</select>

4)在提交方法内部检查表单的$ valid属性。

$scope.submit1 = function(description){
   if($scope.myForm.$valid){
      // Do your stuff
   }else{
      // Do your stuff
   } 
}