我是ICT课程的新生,我们有一个项目。
我目前正在为我的jQuery代码添加购物车。当我选择我将购买多少例如5时,当我点击添加购物车时,总结果将显示在文本字段中。出于某种原因,它不会起作用。我已经尝试过JavaScript,但它也无法工作。
这是我的代码:
$(function() {
var $myNumber = $("#myNumber");
var $add = $("#add");
$add.click(function() {
var input = $myNumber.val();
$('#item').val($(input).val() * $('5000').val());
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<input type="text" id="item" readonly>
<input type="number" id="myNumber" min="1" max="5">
<button type="button" class="button" id="add">Add Cart</button>
<button type="button" class="button" id="Reor">ReOrder</button>
</body>
</html>
&#13;
出于某种原因,结果将是NaN。我错过了什么?我哪里出错了?
答案 0 :(得分:3)
为什么必须用$()包装所有内容?只是
输入* 5000
$(function() {
var $myNumber = $("#myNumber");
var $add = $("#add");
$add.click(function() {
var input = $myNumber.val();
$('#item').val(input * 5000);
});
});
答案 1 :(得分:2)
这是你的问题:
$('#item').val($(input).val() * $('5000').val());
您不必使用$('5000')
...只需使用普通整数值进行计算。
您已将值保存到input
变量(input
已包含数字)...您可以使用此变量将其乘以5000。
$('#item').val(input * 5000);
$(function() {
var $add = $("#add");
$add.click(function() {
var input = parseInt($("#myNumber").val(),0);
$('#item').val(input * 5000);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<input type="text" id="item" readonly>
<input type="number" id="myNumber" min="1" max="5">
<button type="button" class="button" id="add">Add Cart</button>
<button type="button" class="button" id="Reor">ReOrder</button>
</body>
</html>
&#13;
编辑:
对您的价值使用parseInt()
! value
的类型为string
。
var input = parseInt($myNumber.val(),0);
答案 2 :(得分:0)
为什么你有$(&#39; 5000&#39;)。val(),你不需要它 请查看以下代码段
$(function() {
var $myNumber = $("#myNumber");
var $add = $("#add");
$add.click(function() {
var input = parseInt($myNumber.val(),10);
$('#item').val(input * 5000);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="item" readonly>
<input type="number" id="myNumber" min="1" max="5">
<button type="button" class="button" id="add">Add Cart</button>
<button type="button" class="button" id="Reor">ReOrder</button>
&#13;
使用parseInt将输入转换为数字 希望它有所帮助
答案 3 :(得分:0)
在输入时,您已经拥有#myInput元素的值,并且不需要$(&#39; 5000&#39;)。只需使用数字。
试试这个:
$(function() {
var $myNumber = $("#myNumber");
var $add = $("#add");
$add.click(function() {
var input = $myNumber.val();
$('#item').val(input * 5000);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<input type="text" id="item" readonly>
<input type="number" id="myNumber" min="1" max="5">
<button type="button" class="button" id="add">Add Cart</button>
<button type="button" class="button" id="Reor">ReOrder</button>
</body>
</html>
&#13;