2016-10-22 49 views
-3

我是ICT课程的新生,我们有一个项目。我的jQuery不起作用

我目前正在为我的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>

出于某种原因,会出来结果是NaN。我错过了什么?我哪里做错了?

+4

我们真的可以给你最好的建议是。同时查看['NaN'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NaN)的含义,然后向后查找为什么结果是'NaN' 。 –

+0

'$('5000')。val()' - 这到底是什么?我猜你没有'<5000 />'标签。你得到NaN是因为你用一个字符串乘以undefined。 – Li357

+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); 
 

 
    }); 
 
});
<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>

编辑乘以它: 在您的价值上使用parseInt()valuestring类型。

var input = parseInt($myNumber.val(),0); 
3

为什么必须用$()包装所有东西?只是

输入* 5000

$(function() { 
    var $myNumber = $("#myNumber"); 
    var $add = $("#add"); 

    $add.click(function() { 
    var input = $myNumber.val(); 
    $('#item').val(input * 5000); 

    }); 
}); 
0

为什么你有$( '5000')。VAL(),你不需要它 检查以下内容片断

$(function() { 
 
    var $myNumber = $("#myNumber"); 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = parseInt($myNumber.val(),10); 
 
    $('#item').val(input * 5000); 
 

 
    }); 
 
});
<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>

使用parseInt进行转换你输入的数字 希望它有帮助

0

在输入你已经有#myInput元素的值和$('5000')是不需要的。只需使用该号码。你的时间更好的下一次计划:

试试这个:

$(function() { 
 
    var $myNumber = $("#myNumber"); 
 
    var $add = $("#add"); 
 

 
    $add.click(function() { 
 
    var input = $myNumber.val(); 
 
    $('#item').val(input * 5000); 
 

 
    }); 
 
}); 
 
<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>