2017-05-17 34 views
0

我有一個腳本,test.php使用以下HTML & jQuery。基於查詢字符串的自動填充字段使用jQuery

基本上,如果用戶加載此腳本,我想用隨機字符串填充輸入字段。

但是,如果用戶訪問test.php?id=類型的URL,我不想填充此字段。

我怎麼能夠用我現有的代碼做到這一點?


目前,當我運行下面的代碼,它給了我這個錯誤:

Uncaught ReferenceError: key is not defined at test.php:28

<input id="input_1_8" name="input_1_8" value=""> 

<script 
    src="https://code.jquery.com/jquery-3.2.1.js" 
    integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" 
    crossorigin="anonymous"></script> 

<script type="text/javascript"> 

function makeid() 
{ 
    var text = ""; 
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 

    for(var i=0; i < 5; i++) 
     text += possible.charAt(Math.floor(Math.random() * possible.length)); 

    return text; 
} 


var urlParams = new URLSearchParams(window.location.search); 
var keys = urlParams.keys(); 
for (key of keys) {} 
setTimeout(function() { 
    if (null === key) { // here is where I get my error!! 
    } else { 
     $('#input_1_8').val(makeid()); 
    } 
}, 3000); 
</script> 

回答

1

使用下面這個簡單的JS代碼做你想要什麼,如果查詢字符串存在,或不。

if(document.location.search.length) { 
    //query string exists - do something 
} 
else 
{ 
    //query string does not exist - do something 
} 

希望這會有所幫助。

+0

Woop - 工作!非常感謝,Nasir! :-) – michaelmcgurk

+0

謝謝。請標記答案也是正確的。快樂的編碼。 :) –

+0

威爾做 - 你太快了,我不得不再等2分鐘後再打綠色;-) ;-)謝謝!!! – michaelmcgurk

1

您正在初始化for循環的外部引用「key」。另外,您的for循環未正確初始化。你在循環中尋找一個特定的鍵嗎?如果是的話,我會再設置一個外部變量的鍵值,以便您可以將超時內側基準..

function makeid() { 
 
    var text = ""; 
 
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
 

 
    for (var i = 0; i < 5; i++) 
 
    text += possible.charAt(Math.floor(Math.random() * possible.length)); 
 

 
    return text; 
 
} 
 

 

 
var urlParams = new URLSearchParams(window.location.search); 
 
var keysURL = urlParams.keys(); 
 
var keyVal = null; 
 
for (var keyParam in keysURL) { 
 
    // Whatever conditional here.. 
 
    if (true === true) { 
 
    keyVal = keyParam; 
 
    break; 
 
    } 
 
} 
 
setTimeout(function() { 
 
    if (null === keyVal) { // here is where I get my error!! 
 

 
    } else { 
 
    $('#input_1_8').val(makeid()); 
 
    } 
 
}, 3000);
<input id="input_1_8" name="input_1_8" value=""> 
 
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>

+0

非常感謝澄清這一點 - 這很好理解我錯了哪裏:) – michaelmcgurk

1

你的代碼邏輯工作正常,但 你沒有申報的關鍵可變 可以鍵入

var key; 

for (var key in keys) {}