HTML - Invoice: Как добавить значения в текстовое поле и вычислить итоговое значение
Я смог создать шаблон, но я не уверен, что делать дальше.
Когда я нажимаю кнопку "Добавить элемент", я хочу, чтобы значения вошли в текстовую область, которую я создал внизу, и изменили промежуточный итог и итог по мере добавления элементов.
<html>
<head>
<meta charset = "utf-8">
<h1>Invoice Manager</h1>
<style type "text/css">
div {position: absolute;
top: 200px;
left: 90px;
z-index: 1;}
</style>
<script type = "text/javascript">
</script>
</head>
<body>
<table>
<tr>
<td align="right">Item Code:</td>
<td align="left"><input type="text" name="code" /></td>
</tr>
<tr>
<td align="right">Item Name:</td>
<td align="left"><input type="text" name="itemName" /></td>
</tr>
<tr>
<td align="right">Item Cost:</td>
<td align="left"><input type="text" name="cost" /></td>
</tr>
<tr>
<td align="right">Quantity:</td>
<td align="left"><input type="text" name="quantity" /></td>
</tr>
</table>
<div id="AddItemButton">
<td align = "left"><input type="submit" name="Submit" value="Add Item"></td>
</div>
</form>
<br></br> <br></br>
<font size = "5">Current Invoice</font>
<hr style = "height:2px;border:none;color:#333;background-color:#333;"></hr>
<p><label> <br>
<textarea name = "textarea"
rows = "12" cols = "180"></textarea>
</label></p>
<form>
<table>
<tr>
<td align="right">Subtotal:</td>
<td align="left"><input type="text" name="subtotal" /></td>
</tr>
<tr>
<td align="right">Sales Tax:</td>
<td align="left"><input type="text" name="tax" /></td>
</tr>
<tr>
<td align="right">Total:</td>
<td align="left"><input type="text" name="total" /></td>
</tr>
</table>
</form>
<form>
<input type = "button" value = "Add Item" onclick="textarea"/> <input type = "text" id = "cost" size ="20" />
</form>
Это то, что я имею в качестве шаблона. Когда я вписываю в эти поля Код товара, Имя товара, Стоимость товара и Количество, я бы хотел, чтобы эти значения помещались в текстовую область внизу. Я полагаю, мне нужно что-то написать в сценарии.
Я не уверен, как этого добиться, но я думал, что первая порция информации, которую добавляет пользователь, может равняться такой переменной, как a
Тогда вторые введенные значения могут быть равны b
Допустим, пользователь добавляет 3 элемента.
всего = (a + b + c)
Или что-то типа того.
Вот пример того, что будет делать один "Добавить элемент". Я хотел бы, чтобы эти представления появлялись в текстовом поле, которое я создал, так
---Item Code--- ---Item Name--- ---Item Cost--- ---Quantity---
3 Dell 499 1
Любые идеи о том, что я мог бы сделать? Я в недоумении
Спасибо
РЕДАКТИРОВАТЬ: я добавляю свой сценарий, мне интересно, если что-то не так с ним
<script type = "text/javascript">
function computeCost(){
var code = document.getElementById("code").value;
var a = code; // item code
var itemName = document.getElementById("itemName").value;
var b = itemName; // item name
var cost = document.getElementById("cost").value;
var c = cost; // calculate cost
var quantity = document.getElementById("quantity").value;
var d = quantity; // calculate quantity of items
var subtotal = document.getElementById("subtotal").value;
var e = c * d; // multiplying cost by quantity = subtotal
var tax = document.getElementById("tax").value;
var f = e * .7; // multiplying subtotal by tax(.7) = amount of tax owed
var total = document.getElementById("total").value;
var g = f + e; //adding tax to subtotal = total value
document.getElementByID("yo").value = total;
}
function clear()
{
document.getElementById("a","b","c","d", "e", "f", "g").reset();
} // end of clear
</script>
2 ответа
У меня не так много времени, чтобы дать отполированный сценарий, но это обеспечивает базовую функциональность EDIT: добавленные теги сценария и основные вещи JQUERY отмечают, что из-за загрузки JQUERY из Интернета он не будет работать без подключения к Интернету, если вы хотите использовать его без Интернета con, скачайте скрипт и свяжите его локально
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type = "text/javascript">
$(function(){
var textContent = $('textarea').val();
var textRow = "";
$('input[type=submit]').click(function(){
$('input[type=text]').each(function(){
textRow = textRow+$(this).val()+'\t';
});
textContent = textContent + '\n' + textRow;
textRow = "";
$('textarea').val(textContent);
});
});
</script>
Это просто необходимые JS и HTML, ничего особенного:
function id(id){return document.getElementById(id);}
var val1 = 0;
var val2 = 0;
function val(){
val1 = parseInt(id("t1").value);
val2 = parseInt(id("t2").value);
id("total").innerHTML = ((val1 > 0 && val2 > 0))? val1 * val2 : 0;
}
<input id="t1" onkeyup="val()" type="number">
<input id="t2" onkeyup="val()" type="number">
<h1 id="total"></h1>