【问题标题】:number input is taking the placeholder string as the value数字输入将占位符字符串作为值
【发布时间】:2018-03-14 13:22:44
【问题描述】:

这里我有一个number 类型的表单输入,但是每当提交表单时,没有输入任何数字,它选择“评级”的占位符文本作为值。我该如何预防。

如果输入字段中没有输入,我希望输入数字字段无效

这是所有表格

   <section class="container">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h3 class="panel-title">Add Movies</h3>
    </div>
    <div class="panel-body">
      <form (ngSubmit)="onSubmit(f)" #f="ngForm">
        <div class="form-group">
          <input type="text" class="form-control" id="movie-name" placeholder="Enter the Movie Name" ngModel name="movieName" required
            #name="ngModel" [ngClass]="{isValid: name.valid && name.touched, isInvalid: !name.valid && name.touched}">
        </div>
        <div class="form-group col-md-1">
          <input type="number" class="form-control" name="rating" min="1" max="5" placeholder="Rating" size="15" ngModel="rating" required 
            #rating="ngModel" [ngClass]="{isValid: rating.valid && rating.touched, isInvalid: !rating.valid && rating.touched}">
        </div>
        <div class="form-group">
          <input type="date" class="form-control" id="release-date" placeholder="Release Date" ngModel name="releaseDate" required 
          #releaseDate="ngModel" [ngClass]="{isValid: releaseDate.valid && releaseDate.touched, isInvalid: !releaseDate.valid && releaseDate.touched}">
        </div>
        <div class="form-group">
          <input type="text" class="form-control" id="movie-description" placeholder="Enter the description of the Movie" ngModel name="movieDescription"
            required #description="ngModel" [ngClass]="{isValid: description.valid && description.touched, isInvalid: !description.valid && description.touched}">
        </div>
        <p class="help-block alert alert-info text-center">By submitting the data, you agree to our Terms and that you have read our Data Use Policy, including our Cookie Use.
        </p>
        <button type="submit" class="btn btn-default btn-block" [disabled]="!f.valid">Submit</button>
      </form>
    </div>
  </div>
</section>

【问题讨论】:

  • 你能提供所有的表格吗?因为无论是否是 Reactive Forms,这都是不一样的答案。谢谢
  • 你为什么不使用2路绑定? [(ngModel)]="评级"
  • 你怎么能用那个写一个答案
  • 编辑将 [ngModel]="rating" 替换为 [ngModel]="rating"
  • 它是一个模板驱动的表单,要注册控件,您需要添加不带括号的 ngModel 属性

标签: html forms angular angular-forms


【解决方案1】:

以下应该有效:

&lt;input type="number" class="form-control" name="rating" min="1" max="5" placeholder="Rating" [(ngModel)]="yourmodelfield" required [ngClass]="{isValid: rating.valid &amp;&amp; rating.touched, isInvalid: !rating.valid &amp;&amp; rating.touched}"&gt;

使用Two way data binding

【讨论】:

  • 我应该将 yourmodelfield 设置为什么。因为我希望占位符文本出现
  • 占位符出现,因为 placeholder="Rating" 仍然存在。 yourmodelfield 只是绑定到输入的变量,所以如果你的组件中有一个名为“rating”的变量,只需输入“rating”
  • 我不明白。你能在 plunkr 中显示它吗?
  • 不过我贴的链接真的很清楚..看看
  • 并且使用模式比双向绑定更好
猜你喜欢
  • 2013-04-08
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
相关资源
最近更新 更多