在Angular 2

时间:2017-07-13 10:42:18

标签: forms angular prepend

我在Angular 2中建立一个注册表单,要求用户在提交之前提供其网站的网址。

提交表单时,我需要提供的网址为" http://www.google.com"。为了引导用户使用该格式,我希望表单字段自动填充最初的" http://"一旦用户点击该字段(或当用户开始输入时 - 任何一种情况都是可以接受的)。目前我在该字段中有占位符文字,其中显示"请提供您网站的网址",但我在制作" http://"当用户实际点击该字段或开始输入时,会出现前缀。

任何想法都将不胜感激。 Here is what the form field looks like when the user clicks on it.它的内容应切换为" http://"点击或输入时。这是代码目前的样子:

<div class="form-group">

  <input
    class="form-control"
    type="text"
    name="companyUrl"
    [(ngModel)]="user.companyUrl"
    placeholder="Company url"
    required pattern='https?://.+'
    #companyUrl
   >

    <div *ngIf="companyUrl.errors && (companyUrl.dirty || companyUrl.touched)" class="text-danger">
      <div [hidden]="!companyUrl.errors.required">
        Company URL is required.
      </div>
      <div [hidden]="!companyUrl.errors.pattern">
        URL should begin with http:// or https://
      </div>
    </div>

<div>

1 个答案:

答案 0 :(得分:0)

添加一个函数,在输入的click事件上添加前缀。 如下所示:

<input #companyUrl  (click)="addHttpPrefix()" >

并且在这个功能中 1.获取companyUrl的价值。 2.检查它是否以http开头,然后跳过其他前缀为http://

if(companyUrl.indexOf('http') > -1) {
    companyUrl = 'http://' + companyUrl;
}

这种方式当用户最初点击输入http://时会附加。 如果(点击)事件不符合您的要求,您可以尝试使用(更改)或其他事件。