[英]HTML Button - How to dynamically change url content
I am trying to change values in a button's URI to input texts values. 我正在尝试更改按钮URI中的值以输入文本值。
<div class="numcontainer">
<input required="required" onchange="getNumber()" id="cnt" type="input" name="input" placeholder="ISD">
<input required="required" onchange="getNumber()" id="wano" type="input" name="input" placeholder="Enter number">
</div>
<button type="submit" name="gowa" id="btngo" onclick="location.href='myserver://send?phone=NumberPlaceHolder'">Go!</button>
NumberPlaceHolder
: Trying to concatenate values enter in both input NumberPlaceHolder
:尝试连接两个输入中输入的值
JS: JS:
function getNumber() {
document.getElementById('btngo').href.replace("NumberPlaceHolder",document.getElementById('cnt').value+document.getElementById('wano').value);
}
It does not work as expected. 它不能按预期方式工作。 How can I solve this? 我该如何解决?
You cannot have a href
attribute for a button. 您不能具有按钮的href
属性。 You need to change the onclick
attribute here: 您需要在此处更改onclick
属性:
function getNumber(){
document.getElementById('btngo').setAttribute("onclick", document.getElementById('btngo').getAttribute("onclick").replace("NumberPlaceHolder", document.getElementById('cnt').value+document.getElementById('wano').value));
}
It's always better to have it split like this: 最好像这样拆分它:
function getNumber(){
curOnclick = document.getElementById('btngo').getAttribute("onclick");
wanoValue = document.getElementById('cnt').value+document.getElementById('wano').value;
newOnclick = curOnclick.replace("NumberPlaceHolder", wanoValue);
document.getElementById('btngo').setAttribute("onclick", newOnclick);
}
Just an alternative, it's cleaner 只是一种选择,它更清洁
const getNumber =()=> { let val =id=> document.querySelector(id).value console.log('myserver://send?phone='+val('#cnt')+val('#wano')) } //console or location.href
<div class="numcontainer"> <input required id="cnt" type="text" placeholder="ISD"> <input required id="wano" type="number" placeholder="Enter number"> </div> <input type="button" name="gowa" id="btngo" onclick="getNumber()" value="Go!">
onChange
is quite unnecessary. onChange
是完全不必要的。
You should use simple 您应该使用简单
<a href="myserver://send?phone=NumberPlaceHolder"></a>
instead of 代替
<button type="submit" name="gowa" id="btngo" onclick="location.href='myserver://send?phone=NumberPlaceHolder'">Go!</button>
To change link use this: 要更改链接,请使用以下命令:
document.querySelector('.start a').href = 'my-new-address'
Change your input type like this type="nummber"
or type="text"
for getting number or text only 像这样更改输入类型type="nummber"
或type="text"
仅用于获取数字或文本
<input required="required" onchange="getNumber()" id="cnt" type="nummber" placeholder="ISD">
<input required="required" onchange="getNumber()" id="wano" type="number" placeholder="Enter number">
You can add click event to your button like this. 您可以像这样向按钮添加点击事件。
function getNumber(){
document.getElementById("btngo").onclick = function() {
var ll = "myserver://sendphone="+document.getElementById('cnt').value+document.getElementById('wano').value;
console.log(ll); // checking url in console.
location.href = ll;
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.