我正在更新如下所示的Web表单:
我的目标是做到这一点,以便使用用户浏览器的通讯簿中存储的信息自动填充这些字段。
我没有直接访问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中正常工作感到困惑。
一个偶然但不那么重要的问题是,是否有任何方法可以使标题/荣誉前缀下拉列表起作用。目前,该功能无法在任何浏览器中使用,并且似乎没有浏览器允许您在通讯簿中存储标题/荣誉前缀。所以我猜想它不可能完成,但是如果有人知道的话,我会对使这项工作有效的方法感兴趣。