(编辑:我没有与上面提到的重复问题合并,因为我不是一个经验丰富的编码员,所以使用的语言大多数'非编码员'会使用。所以这个问题和答案实际上可能为像我们这样的人提供价值。)
我有这个代码根据字段的id预先填充电子邮件输入字段,文本取自url *
示例 - mywebsite.com&?mail=some@example.com,然后电子邮件字符串将插入页面的电子邮件字段中。
当前代码:
var mail = document.querySelector('input.emailfieldclass');
if (mail) {
var t = document.location.href.split('?')[1];
if (t) {
var params = {};
var lst = t.split('&'), l = lst.length;
for (var i = 0; i < l; i++) {
var p = lst[i].split('=');
if (!p[1]) continue;
params[p[0]] = p[1];
}
if (params.mail) {
mail.value = params.mail;
}
}
}
问题:
1)上面的代码适用于具有id和/或类的普通html输入元素。
2)但是当我有一个包含以下电子邮件字段属性的表单时,如何使其工作,没有任何特定的ID:
<input placeholder="Email" data-field-id="field32" data-val-type="email">
限制: 无法将此我自己的ID或类添加到此字段。只能使用上述数据属性。
答案 0 :(得分:1)
在这里,您将使用guradio的评论中提到的数据选择器。
var mail = document.querySelector('[data-val-type=email]');
console.log(mail);
/*
if (mail) {
var t = document.location.href.split('?')[1];
if (t) {
var params = {};
var lst = t.split('&'), l = lst.length;
for (var i = 0; i < l; i++) {
var p = lst[i].split('=');
if (!p[1]) continue;
params[p[0]] = p[1];
}
if (params.mail) {
mail.value = params.mail;
}
}
}
*/
&#13;
<input placeholder="Email" data-field-id="field32" data-val-type="email">
&#13;