如何触发Span元素填充输入字段(Javascript)中输入的值

时间:2017-03-28 10:41:31

标签: javascript html dom

我正在为网页创建一个Bookmarklet,并且遇到了一个Span id =“totalAmount”元素(摘要表),该元素通常通过单击将值手动输入到输入字段(id =“Amount”)后填充进入它并键入值。我可以使用Bookmarklet成功输入值,但不填充Span id =“totalAmount”元素。我错过了什么?

这是HTML

<input id="Amount" class="with-prefix sum-amount" type="tel" value="" name="Amount" data-val-required="Please enter your amount" data-val-regex-pattern="^\d*\.?\d{0,2}$" data-val-regex="Please enter the amount" data-val-reasonableincome="" data-val-number="The field What is your amount? must be a number." data-val="true" aria-describedby="AmountTooltip"/>

<div class="summary-table clearfix">
<div class="summary-table-item">
<span class="text">Total amount</span>
<span class="curr-sign">£</span>
<span id="totalAmount" class="value"/>
</div>

手动将值输入到输入字段时,span元素将填充相同的值并且代码将更改为:

<span id="totalAmount" class="value">25000.00</span>

但是当我使用以下Bookmarklet时,虽然输入字段已成功输入值,但“totalAmount”跨度未填充

javascript: var newPage = {
    formFill: function() {
        document.querySelectorAll("#Amount")[0].value = '25000';
    }
};
newPage.formFill()

注意:由于权限原因,我无法修改HTML

非常感谢

3 个答案:

答案 0 :(得分:1)

span不是input元素,它有innerHTML,而不是value

document.getElementById( "Amount" ).onchange = function(){
   document.getElementById("totalAmount").innerHTML = this.value;
}

答案 1 :(得分:0)

首先,跨度未正确关闭。请更正。

查询发生在Input元素而不是span。

如果您希望跨度填充输入元素中输入的值。您必须编写一个执行计算的函数。这可以绑定到键盘事件。

答案 2 :(得分:0)

// use this code and close span tag.

javascript: var newPage = {
  formFill: function() {
     document.querySelectorAll("#Amount")[0].value  = '25000';
     document.getElementsByClassName(".curr-sign").textContent = '25000';
     document.getElementById("totalAmount").textContent = "25000";
  }
};
newPage.formFill();