2017-02-27 20 views
-1

編輯:我還沒有提到,因爲我不是一個經驗豐富的編碼重複的問題合併,因此已經使用語言最「非程序員」將使用所以這個問題,答案實際上可能爲人們提供了價值。像我們這樣的)如何使用「data-field-id」或「data-val-type」將URL中的數據插入HTML字段?

我有這樣的代碼,其預填充基於字段的ID電子郵件輸入字段,從URL *

例採取文本 - mywebsite.com &郵件=一些@ 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或類添加到這個領域。只能使用上述數據屬性。

+2

使用數據選擇'$( 「[數據場-ID = field32]」)' – guradio

+0

採取看起來這個計算器交http://stackoverflow.com/questions/23592030 /獲取數據屬性 –

+0

的[選擇通過jQuery中HTML5數據屬性的元素]可能的複製(http://stackoverflow.com/questions/4993447/select-elements-by-html5-data-attribute-in-jquery) – JJJ

回答

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; 
 
     } 
 
    } 
 
} 
 
*/
<input placeholder="Email" data-field-id="field32" data-val-type="email">

相關問題