首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据用户html-select输出字符串

根据用户html-select输出字符串
EN

Stack Overflow用户
提问于 2019-04-19 13:26:10
回答 4查看 107关注 0票数 1

我有一个表单,用户输入一个数量从1到10,和一个只读文本字段,我需要输出一个字符串与计算的价格。也可能是另一个容器之王,但由于该位置位于格式化单元格内,所以我不愿使用div。如前所述,任何东西都是在表单中为购买过程将值(也有captcha )发布到php文件中。以下是我的代码:

代码语言:javascript
复制
function calculatePrice() {
  var form = document.getElementById('buy_form');
  var num_pieces = parseInt(form.elements.number_select.value);
  var price_for_1 = 9.90; //I know, hardcoded is worst, I'll take it from the DB later on
  var totalprice = price_for_1 * num_pieces;
  document.getElementById("total_price").innerHTML = "Total price: \u20AC " + totalprice;
}
代码语言:javascript
复制
<form method="post" id="buy_form" action="buy.php">

<select name="numberselect" id="number_select" onChange="calculatePrice()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>

<input type=text class="totalprice" id="total_price" style="border: none" readonly>

//a captcha image
//a captcha input field
//a submit button

</form>

函数根本不输出只读文本字段中的任何内容。我遗漏了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-19 13:43:53

代码语言:javascript
复制
document.getElementById("total_price").innerHTML 

应该是,

代码语言:javascript
复制
document.getElementById("total_price").value

代码语言:javascript
复制
function calculatePrice() {
        var form = document.getElementById('buy_form');
        var num_pieces = parseInt(form.elements.number_select.value);
        var price_for_1 = 9.90; //I know, hardcoded is worst, I'll take it from the DB later on
        var totalprice = price_for_1 * num_pieces;
        document.getElementById("total_price").value = "Total price: \u20AC " + totalprice;
    }
代码语言:javascript
复制
<form method="post" id="buy_form" action="buy.php">

    <select name="numberselect" id="number_select" onChange="calculatePrice()">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select>

    <input type=text class="totalprice" id="total_price" style="border: none" readonly>
</form>

票数 1
EN

Stack Overflow用户

发布于 2019-04-19 13:47:19

实际上问题是

代码语言:javascript
复制
 document.getElementById("total_price").innerHTML

innerHTML将永远无法工作,因为innerHTML将在javascript中获取的元素上添加HTML元素。

应该用,

代码语言:javascript
复制
document.getElementById("total_price").value

所以函数将如下所示

代码语言:javascript
复制
function calculatePrice() { 
  var form = document.getElementById('buy_form');
  var num_pieces = parseInt(form.elements.number_select.value);
  var price_for_1 = 9.90; //I know, hardcoded is worst, I'll take it from the DB later on
  var totalprice = price_for_1 * num_pieces;
  document.getElementById("total_price").value = "Total price: \u20AC " + totalprice;
}

希望这能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2019-04-19 14:07:14

在您的JavaScript代码中执行以下更改:

代码语言:javascript
复制
function calculatePrice() {
  var form = document.getElementById('buy_form');
  var num_pieces = parseInt(form.elements.number_select.value);
  var price_for_1 = 9.90; //I know, hardcoded is worst, I'll take it from the DB later on
  var totalprice = price_for_1 * num_pieces;
  document.getElementById("total_price").value = "Total price: \u20AC " + totalprice;
}

window.calculatePrice = calculatePrice;
  1. 将innerHTML更改为值。
  2. 将函数添加到窗口对象中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55762597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档