2017-09-13 53 views
2

我试图将一个数字传递给按钮单击上的文本字段。用户点击“添加到购物车”,并将2499添加到文本字段中。将一个值从按钮传递到JavaScript中的文本字段

<form name="cart"> 
    <input id="display" type="text" name="output" size="6" placeholder="0000"/> 
<button id="scart" value="Add to Cart" onclick="addCart()" +='2499'"/> 

<script type="text/javascript"> 

var total="" 

function addCart(){ 
    document.getElementById('scart').value; 
    total+= document.getElementById('display').value; 
    console.log(total); 
} 

</script> 

学习时,我觉得我理解逻辑,但不知道语法。

+0

你究竟在做什么? – Nit

+0

我正在尝试在假商店网站上添加“添加到购物车”按钮。点击该按钮时,2499将被添加到总数中并显示。 –

+0

所以当我点击按钮时,它会将2499添加到输入? – Gardezi

回答

0

我认为这是你想要的。我做了一个codepen你:https://codepen.io/NeilGBK/pen/boGadz?editors=1111

<form name="cart"> 
     <input id="display" type="text" name="output" size="6" placeholder="0000"/> 
    </form> 
    <button id="scart" onclick="addCart(2499)">Add To Cart</button> 

<script> 
    function addCart(v){ 
     document.getElementById('display').value = v 
     console.log(v); 
     return false; 
    } 
</script> 

我传递的数量的功能和简单的使用改变输入的值。我也将它记录到控制台

+0

谢谢(和其他人)的帮助。我有很多东西需要学习。我现在正在参加一个JS课程,下个月很可能会去编码训练营。我尽力学习所能,但这很困难。 –

+0

我们都去过那里。你应该熟悉的一件事是函数范围的概念。大多数流行的语言都是“块范围的”,但JS是功能范围的。您认为变量total可以在addCart()函数内访问,这就是它在块范围语言中的工作方式。做尝试的一种方法是使用闭包。但是,纯函数更具可预测性。这可能对你而言现在听起来像是希腊语,但这些概念很快就会发挥作用。当这些概念有意义时,你将会掌握JavaScript。 –

0

你有一些错误,你的报价不匹配,你没有关闭按钮标签。另外,为什么不在代码中添加2499?

如何:

<form name="cart"> 
    <input id="display" type="text" name="output" size="6" placeholder="0000"/> 
    <button id="scart" value="Add to Cart" onclick="addCart()" > 
    </button> 

    <script type="text/javascript"> 

    var total="" 

    function addCart(){ 
     document.getElementById('scart').value; 
     total+= document.getElementById('display').value + 2499; 
     console.log(total); 
    } 

    </script> 
</form> 
0

目前还不清楚是什么你正在尝试做的,所以我做了一个“购物车”按钮,在输入你想添加到购物车数量的开始。

然后我打印出输入的数字和总数,如果你多次按下按钮。

<input id="display" type="text" name="output" size="6" placeholder="0000" /> 
 
<button id="scart" type="button">Add to cart</button> 
 

 
<script type="text/javascript"> 
 
    var total = 0; 
 
    var display = document.querySelector('#display'); 
 
    var scart = document.querySelector('#scart'); 
 

 
    scart.addEventListener('click', function() { 
 
    var str = display.value; 
 
    var num = parseInt(str, 10); 
 
    console.log('You entered the number: ', num); 
 
    if (!isNaN(num)) { 
 
     total += num; 
 
    } 
 
    console.log('The total is now: ', total); 
 
    }); 
 
</script>

0

有很多事情是这里错:

首先,一个很好的指标data-value或任何

<button id="scart" value="Add to Cart" onclick="addCart()" data-value="2499"/> 

二取代+,在你的脚本,你应该让var total a number不是string

var total = 0; 

最后,你的addCart()函数。

function addCart() { 
    // I see you are trying to get the value of the clicked button so you need to store it as this does not do anything 
    // document.getElementById('scart').value; 
    var value = document.getElementById('scart').value; 
    // Add it to total var;, you need to parseInt it as .value returns string 
    total += parseInt(value); 
    // put it on display 
    document.getElementById('display').value = total; 
} 

希望有所帮助。

相关问题