为什么此建议仅在电子邮件输入中

时间:2018-11-15 13:52:48

标签: c# html asp.net-mvc

您好,我有一个带有不同输入字段的表单。

我想知道为什么只有电子邮件输入的建议(自动完成)包含我的连接页面的电子邮件和chrome保存的密码。

我尝试删除id =“ email”和name =“ email”以及数据注释,但也仅针对此输入显示建议。

最后,我想在此输入中禁用此建议,我也尝试过使用自动完成属性,但是我遇到了同样的问题。

这是我的代码html:

<div class="col-6">
   <label class="col-12 px-2 mdc-text-field">
      @Html.TextBoxFor(model => model.Email, new { @class = "mdc-text-field__input", @style = "padding-left: 20px;" })
      <span class="mdc-floating-label" style="padding-left: 20px;">Mail</span>
      <div class="mdc-text-field__bottom-line"></div>
   </label>
   @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
</div>

这是我的模特:

 [Required(ErrorMessage = "L'adresse mail est obligatoire")]
    [RegularExpression("^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,100}$", ErrorMessage = "E-mail invalide")]
    public string Email { get; set; }

1 个答案:

答案 0 :(得分:2)

因此,这是我从您的问题中了解的信息。

您的浏览器在字段中建议您存储的电子邮件/密码,并希望避免这种情况。

可能的解决方案,只需最少的代码:

关键是告诉浏览器不要通过关闭自动完成功能来提出任何建议。

autocomplete="off"

您可以像这样在表单中进行设置

<form method="post" action="blah" autocomplete="off">
...
</form>

或者,您可以像这样直接将其设置到您的字段中

<input type="text" id="lalaLand" name="ryan" autocomplete="off">

这应该可以解决您的问题。但是,如果仍然无法使用,只需在autocomplete属性中提供一些垃圾值,而不是“ off”。

autocomplete="Katakomb"

我不推荐最后一个,因为它是一种肮脏的解决方法。仅当选项用完时才使用它。

更新1:

从您的评论中我看到禁用对您不起作用。试试这个,看看是否可行。 (由于字符@,因此无法在评论中发布此内容)

<%= Html.TextBoxFor(
    model => model.Email, 
    new { @class = "mdc-text-field__input", @style = "padding-left: 20px;", autocomplete = "off" } 
)%>

更新2

用于通过自定义属性进行处理的示例。

@Html.TextBoxFor(vm => vm.Blah, new { my_attribute= "myValue" })

这将在实际的HTML版本中生成一个自定义属性,如下所示:

<input my-attribute="myValue" id="Blah" name="Blah" type="text" value="" />