简体   繁体   English

HTML按钮-如何动态更改URL内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM