我有一个表单,用户输入一个数量从1到10,和一个只读文本字段,我需要输出一个字符串与计算的价格。也可能是另一个容器之王,但由于该位置位于格式化单元格内,所以我不愿使用div。如前所述,任何东西都是在表单中为购买过程将值(也有captcha )发布到php文件中。以下是我的代码:
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;
}<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>
函数根本不输出只读文本字段中的任何内容。我遗漏了什么?
发布于 2019-04-19 13:43:53
document.getElementById("total_price").innerHTML 应该是,
document.getElementById("total_price").value
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;
}<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>
发布于 2019-04-19 13:47:19
实际上问题是
document.getElementById("total_price").innerHTMLinnerHTML将永远无法工作,因为innerHTML将在javascript中获取的元素上添加HTML元素。
应该用,
document.getElementById("total_price").value所以函数将如下所示
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;
}希望这能帮上忙
发布于 2019-04-19 14:07:14
在您的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;https://stackoverflow.com/questions/55762597
复制相似问题