我有一个非常简单的任务,但它不起作用。 提示只是第一次跳起,现在不再有用了。 我将不胜感激任何帮助!谢谢
任务: 当任何顾客购买超过1000件商品时,店主给予10%的折扣。 1.编写一个功能,将采购的总项目(提示)和每个项目的价格(固定)作为参数。并计算客户应付的总金额。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src = "8.js"></script>
</head>
<body>
<button onclick="check()">check</button>
</body>
</html>
function check(){
var totalItem = parseInt(prompt('please enter total item purchased:'));
var pricePerItem = 15.5;
if (totalItem > 1000){
function topay(totalItem, pricePerItem){
var toPay = (totalItem * pricePerItem) * 0.9;
console.log(toPay);
document.write ('total amount payable ' + toPay);
};
}
};
答案 0 :(得分:0)
使用此
function topay(totalItem, pricePerItem){
var toPay = (totalItem * pricePerItem) * 0.9;
console.log(toPay);
document.write ('total amount payable ' + toPay);
};
topay(totalItem, pricePerItem);
}
答案 1 :(得分:0)
当你使用document.write时,它会删除你的html文件中的所有内容。
在页面上显示一个元素以显示您需要的文本会更好。试试这个:
在按钮标记的正上方添加此div标记:
<div id="divTotal"></div>
然后用你的文件替换你的document.write('应付总额'+付款)行:
document.getElementById("divTotal").innerHTML = 'total amount payable ' + toPay;
这只会替换指定div中的内容,而不是像document.write一样编写整个页面。
答案 2 :(得分:0)
正如其他人所说,使用document.write是你的错误,因为你覆盖了所有的HTML。更一般地说,我鼓励你试验模块模式(以避免在窗口上保存一个函数),bootstrap(使你的界面看起来很好),错误处理(如果用户没有输入正确的输入),以及jQuery(简化DOM操作)。我为你的问题here整理了一个傻瓜。
HTML
<head>
<meta charset="UTF-8" />
<script data-require="jquery@*" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script data-require="bootstrap@3.3.6" data-semver="3.3.6" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link data-require="bootstrap-css@3.3.6" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
<script src="script.js"></script>
</head>
<body>
</br>
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<input type="text" id='totalItems' class="form-control" placeholder="Enter total amount of items purchased...">
<span class="input-group-btn">
<button class="btn btn-default btn-success" onclick='priceModule.processItemInput()' type="button">Get Total Price</button>
</span>
</div>
<!-- /input-group -->
</div>
<div class="col-lg-6">
<h4>
Total Amount Due:
<span id='answerTotal'></span>
</h4>
<!-- /input-group -->
</div>
<!-- /.row -->
</body>
</html>
的Javascript
// Declare a new module to avoid polluting the global namespace
// http://appendto.com/2010/10/how-good-c-habits-can-encourage-bad-
// javascript-habits-part-1/)
(function(priceModule, $) {
var pricePerItem = 15.5;
priceModule.processItemInput = function() {
// Get the current user input
var totalItems = $('#totalItems').val();
var message = '';
// Test for errors
var invalidInput = isInvalidInput(totalItems);
if (invalidInput) {
// Set the message as the correct error message
message = invalidInput;
} else {
// Set the message as total due
message = '$' + calculateTotal(totalItems, pricePerItem);
}
// Output the error message or total
$('#answerTotal').text(message);
// Return the focus to the input
$('#totalItems').focus();
};
// Takes a string and returns the appropriate error message
// or an empty string if no error.
var isInvalidInput = function(totalItems) {
message = '';
if (isNaN(totalItems)) {
message = 'Please enter a valid number of items.'
} else if (parseInt(totalItems) < 0) {
message = 'Please enter a positive number of items.'
} else if (parseInt(totalItems) !== parseFloat(totalItems)) {
message = 'Please enter a whole number of items.'
}
return message;
};
// Takes a total number of items (string) and pricePerItem (float)
// and returns a total amount due, after discount, rounded to
// the nearest cent.
var calculateTotal = function(totalItems, pricePerItem) {
var total = parseInt(totalItems) * pricePerItem;
// Apply discount if over 1000
if (total > 1000) {
total = total * .9;
}
// Round to the nearest cent.
return total.toFixed(2);
};
}(window.priceModule = window.priceModule || {}, jQuery));