2017-09-07 35 views
0

我試圖使用URL參數來填充文本輸入:http://127.0.0.1/index.html?uname="john"的javascript傳遞變量的文本輸入onchange事件無法工作

<p class="control"> 
<input autofocus id="uname" class="input" 
    onchange="(sayhello(this.value))" 
    oninput="sayhello(this.value)" 
    placeholder="Enter your name" type="text"> 
</p> 

我用下面的腳本通過URL參數爲輸入文字的事件不起作用,它們只在刪除輸入文本並鍵入時才起作用。

<script> 
var uunme = window.location.href.match(/\?uname=(.*)/); 
document.getElementById("uname").value = uunme[1]; 

</script> 
+0

'sayhello'不是本機功能。此外,以編程方式更改輸入值時,不會觸發更改/輸入事件。您必須手動調用事件處理程序,或觸發更改/輸入事件。 – Teemu

+1

當您以編程方式設置值時,'onchange'和'oninput'都不會觸發。 –

+0

https://stackoverflow.com/questions/6826707/javascript-onchange-event-does-not-work-with-value-change-in-text-input-o – epascarello

回答

0

是這樣的嗎?

var url_string = "https://example.com/?uname=foo"; // window.location.href 
 
var url = new URL(url_string); 
 
var uunme = url.searchParams.get("uname"); 
 
document.getElementById("uname").value = uunme; 
 

 
function sayhello(text) { 
 
    alert(text); 
 
}
<p class="control"> 
 
    <input autofocus id="uname" class="input" onchange="sayhello(this.value);" oninput="sayhello(this.value);" placeholder="Enter your name" type="text"> 
 
</p>

我使用的答案從問題#1 「How to get the value from the GET parameters?」 可靠地獲取URL參數uname。我還收拾了一些東西。

+0

我知道,當頁面加載參數foo在輸入文本中加載,但函數不起作用 – roxy678

+0

'sayhello()'函數? – Acidic

+0

是的,只有當我刪除輸入文本,並輸入它的手冊 – roxy678

相關問題