如何使用“data-field-id”或“data-val-type”将数据从url插入到HTML字段?

时间:2017-02-27 08:17:19

标签: javascript jquery html

编辑:我没有与上面提到的重复问题合并,因为我不是一个经验丰富的编码员,所以使用的语言大多数'非编码员'会使用。所以这个问题和答案实际上可能为像我们这样的人提供价值。)

我有这个代码根据字段的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或类添加到此字段。只能使用上述数据属性。

1 个答案:

答案 0 :(得分:1)

在这里,您将使用guradio的评论中提到的数据选择器。

&#13;
&#13;
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;
&#13;
&#13;