地址Textarea元素在Firefox中不会自动填充

时间:2019-09-13 18:10:17

标签: javascript jquery html

我正在更新如下所示的Web表单:

enter image description here

我的目标是做到这一点,以便使用用户浏览器的通讯簿中存储的信息自动填充这些字段。

我没有直接访问HTML的权限,但是可以向页面添加JavaScript。我已经添加了这个jQuery:

<script>
  $(document).ready(function() {
    $("[id$='WizDonationForm']").attr("autocomplete", "on");
    $("[id$='DdlTitle']").attr("autocomplete", "honorific-prefix");
    $("[id$='TbFirstName']").attr("autocomplete", "given-name");
    $("[id$='TbLastName']").attr("autocomplete", "family-name");
    $("[id$='DdlCountry']").attr("autocomplete", "country-name");
    $("[id$='TbAddress']").attr("type", "autocomplete");
    $("[id$='TbAddress']").attr("autocompletesearch", "addrbook");
    $("[id$='TbAddress']").attr("autocomplete", "billing street-address address-line1");
    $("[id$='TbCity']").attr("autocomplete", "locality");
    $("[id$='DdlState']").attr("autocomplete", "region");
    $("[id$='TbZip']").attr("autocomplete", "postal-code");
    $("[id$='TbPhone']").attr("autocomplete", "tel-national");
    $("[id$='TbEmail']").attr("autocomplete", "email");
  });
</script>

这可以满足我在Chrome,Edge和Opera中的要求,但是在Firefox中,textarea地址字段无法自动填充。这是执行jQuery后textarea地址元素的源代码:

<textarea name="PC3650$ctl00$WizDonationForm$TbAddress" rows="3" cols="20" id="PC3650_ctl00_WizDonationForm_TbAddress" class="form-control" onblur="ValidatorValidate(document.getElementById('RfvAddress'));" type="autocomplete" autocompletesearch="addrbook" autocomplete="billing street-address address-line1"></textarea>

为什么Firefox无法从我的通讯录中自动填写此字段?所有其他字段(标题除外,请参见下文)均根据需要自动填充。我确定它必须与文本区域有关,而不是与input或select元素有关,但是我对如何使其在Firefox中正常工作感到困惑。

一个偶然但不那么重要的问题是,是否有任何方法可以使标题/荣誉前缀下拉列表起作用。目前,该功能无法在任何浏览器中使用,并且似乎没有浏览器允许您在通讯簿中存储标题/荣誉前缀。所以我猜想它不可能完成,但是如果有人知道的话,我会对使这项工作有效的方法感兴趣。