【发布时间】:2016-03-08 21:46:06
【问题描述】:
我有一个问题,它已经困扰我好几天了,我有一个动态选择字段,用户从数据库中选择一种成分,如果他想添加更多成分,他只需点击“添加”按钮,然后创建了另一个选择字段,所有选择字段都显示其名称和价格(作为文本),并且有一个输入文本字段(basePrice)应该具有创建的每个选择的总和
选择字段
<select name="ingredienteId[]" id="ingredienteId" onchange="DoMath()">
<?php foreach($ingredientes as $ingrediente) {
$essaEhATorta = $torta['ingredienteId'] == $ingrediente['id'];
$selecao = $essaEhATorta ? "selected='selected'" : "";
?>
<option value="<?=$ingrediente['id']?>" <?=$selecao?>>
<?=$ingrediente['nome']?> <?=$ingrediente['price']?>
</option>
<?php } ?>
</select>
动态选择字段
$('#add').click(function() {
var newSelect = $('<label>Ingrediente</label> <select name="ingredienteId[]" id="ingredienteId" class="form-control"> <?php foreach($ingredientes as $ingrediente) {$essaEhATorta = $torta["ingredienteId"] == $ingrediente["id"];$selecao = $essaEhATorta ? 'selected="selected"' : "";?> <option value="<?=$ingrediente["id"]?>" <?=$selecao?>><?=$ingrediente["nome"]?><?=$ingrediente["preco"]?> </option><?php } ?> </select>')
$('#notas').append(newSelect);
});
basePrice 输入文本字段
<input class="form-control" type="text" value="<?=$torta['precoBase']?>" name="precoBase" id="basePrice"/>
正如我之前所说,选择选项将产品的名称/价格作为文本<?=$ingrediente['nome']?><?=$ingrediente['price']?>,所以我只想要价格我想出了这个代码:
DoMath()
function DoMath(){
var e = document.getElementById("ingredienteId");
var finalPrice= e.options[e.selectedIndex].text;
var noLetterPrice = finalPrice.replace(/[^0-9,"."]/g,'');
var result = parseFloat(noLetterPrice);
document.getElementById("basePrice").value = result;
我的部分代码是葡萄牙语,但我希望你们能理解
您可以看到转换部分有效,但我不知道如何使总和部分有效,我尝试了一些方法,但似乎没有任何效果
【问题讨论】:
-
请先删除短裤标签,但无法在您的 html 结构中找到#add
标签: javascript php jquery mysql arrays