我的jQuery不起作用

时间:2016-10-22 22:46:08

标签: javascript jquery html5

我是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;
&#13;
&#13;

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

4 个答案:

答案 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);

&#13;
&#13;
 $(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;
&#13;
&#13;

编辑: 对您的价值使用parseInt()value的类型为string

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

答案 2 :(得分:0)

为什么你有$(&#39; 5000&#39;)。val(),你不需要它 请查看以下代码段

&#13;
&#13;
 $(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;
&#13;
&#13;

使用parseInt将输入转换为数字 希望它有所帮助

答案 3 :(得分:0)

在输入时,您已经拥有#myInput元素的值,并且不需要$(&#39; 5000&#39;)。只需使用数字。

试试这个:

&#13;
&#13;
 $(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;
&#13;
&#13;