Javascript 未更新 <input> 值

Posted

技术标签:

【中文标题】Javascript 未更新 <input> 值【英文标题】:Javascript not updating the <input> value 【发布时间】:2021-10-15 04:23:53 【问题描述】:

我想在单击按钮时使用 js 更改输入字段的值,但我的解决方案根本不起作用。我也试过 setAttribute('value','My default value');但也没有用。任何建议将不胜感激。

我有 3 个按钮 (+250) (+500) (+1000),我希望在单击其中一个按钮后,输入字段会将按钮的相应值添加到其值中。 (IDK 如果有帮助,但在所有 var 之前还有另一个函数)

var el = document.getElementById("waterInput");
var b250 = document.getElementById("btn250");
var b500 = document.getElementById("btn500");
var b1000 = document.getElementById("btn1000");
var partialWater = 0;

b250.onclick = function() 
  insertInput(250)

b500.onclick = function() 
  insertInput(500)

b1000.onclick = function() 
  insertInput(1000)


function insertInput(water) 
  partialWater += water;
  el.value = toString(partialWater);
<div class="mb-4">
  <button id="btn250" class="btn btn-outline-primary">+250 ml.</button>
  <button id="btn500" class="btn btn-outline-primary">+500 ml.</button>
  <button id="btn1000" class="btn btn-outline-primary">+1000 ml.</button>
</div>
<form method="post">
  <div class="input-group mb-3" style="width: 50%">
    <input type="text" class="form-control" placeholder="" aria-label="Custom Water" aria-describedby="basic-addon2">
    <span class="input-group-text" id="basic-addon2">ml</span>
  </div>
  <button id="waterInput" type="submit" class="btn btn-primary">Add</button>
  <button class="btn btn-danger text-decoration-underline mx-5">Reset</button>
</form>

我正在使用 Flask 和 pyCharm

【问题讨论】:

当您更改按钮控件上的文本时,请尝试el.innerText 您在“添加”按钮上使用了waterInput id。不是&lt;input&gt; 元素。也使用partialWater.toString() 而不是toString(partialWater) 【参考方案1】:

也许这有帮助: 将 id 放入您的输入(在本例中为“waterlabel”)并将不带 toString 的值传递给 el.value

希望这对你有用 祝你有美好的一天

var el = document.getElementById("waterlabel");
var b250 = document.getElementById("btn250");
var b500 = document.getElementById("btn500");
var b1000 = document.getElementById("btn1000");
var partialWater = 0;

b250.onclick = function() 
  insertInput(250)

b500.onclick = function() 
  insertInput(500)

b1000.onclick = function() 
  insertInput(1000)


function insertInput(water) 
  partialWater += water;
  el.value = partialWater;
<div class="mb-4">
  <button id="btn250" class="btn btn-outline-primary">+250 ml.</button>
  <button id="btn500" class="btn btn-outline-primary">+500 ml.</button>
  <button id="btn1000" class="btn btn-outline-primary">+1000 ml.</button>
</div>
<form method="post">
  <div class="input-group mb-3" style="width: 50%">
    <input id="waterlabel" type="text"  class="form-control" placeholder="" aria-label="Custom Water" aria-describedby="basic-addon2">
    <span class="input-group-text" id="basic-addon2">ml</span>
  </div>
  <button id="waterInput" type="submit" class="btn btn-primary">Add</button>
  <button class="btn btn-danger text-decoration-underline mx-5">Reset</button>
</form>

【讨论】:

【参考方案2】:

尝试引用输入而不是按钮:

var el = document.getElementById("aa");
var b250 = document.getElementById("btn250");
var b500 = document.getElementById("btn500");
var b1000 = document.getElementById("btn1000");
var partialWater = 0;

b250.onclick = function() 
  insertInput(250)

b500.onclick = function() 
  insertInput(500)

b1000.onclick = function() 
  insertInput(1000)


function insertInput(water) 
  partialWater += water;
  console.log(el)
  el.value = partialWater;
<div class="mb-4">
  <button id="btn250" class="btn btn-outline-primary">+250 ml.</button>
  <button id="btn500" class="btn btn-outline-primary">+500 ml.</button>
  <button id="btn1000" class="btn btn-outline-primary">+1000 ml.</button>
</div>



<form method="post">
  <div class="input-group mb-3" style="width: 50%">
    <input id="aa" type="text" class="form-control" placeholder="" aria-label="Custom Water" aria-describedby="basic-addon2">
    <span class="input-group-text" id="basic-addon2">ml</span>
  </div>
  <button id="waterInput" type="submit" class="btn btn-primary">Add</button>
  <button class="btn btn-danger text-decoration-underline mx-5">Reset</button>
</form>

【讨论】:

以上是关于Javascript 未更新 <input> 值的主要内容,如果未能解决你的问题,请参考以下文章

某些表单输入未通过 GET / POST 发送 [重复]

Wicket:通过 Javascript 更新文本字段

为输入控件获取未定义的值

SQL 数据库未更新 | JavaScript |不和谐机器人

jQuery Tokeninput / 未找到结果

在 JSP 中更新数据库