【问题标题】:how to pass changed input value as param to another function如何将更改的输入值作为参数传递给另一个函数
【发布时间】:2013-08-04 23:53:31
【问题描述】:

我有一个输入文本字段,其中的值可以通过加号和减号按钮递增或递减。

我需要将此输入字段的值作为第三个参数传递给在另一个按钮中调用 onclick 的函数(页面中的所有元素同时加载)。

如何使用 Javascript 而不是 jQuery 来做到这一点?如果我只是传递函数的名称,我会得到它的主体。

JSFIDDLE

html:

<input type="button" onclick="updateQuantity('test','add')" value="+" />
<input type="button" onclick="updateQuantity('test','not')" value="-" />
<input type="button" onclick="getUpdatedQty()" value="just proof that I can get value of quantity" />
<input type="button" onclick="passData('test', 2, 2)" value="button passing the data" />

js:

function updateQuantity(ID, action){

var prodQty = document.getElementById(ID);
var maxQty = 3;

    if(action === 'add') { 
        prodQty.value++; 
        if(prodQty.value > maxQty) { prodQty.value = maxQty }

    } else { 
        prodQty.value--; 
        if(prodQty.value <= 0) { prodQty.value = 1 }
    } 
} 

function passData(p1, p2, p3) {
    alert('First: '+p1 + ', Second: ' + p2 +', Third: '+ p3);
}

function getUpdatedQty() {
    var prodQty = document.getElementById('test'); alert(prodQty.value);
}

【问题讨论】:

  • 你的小提琴被设置为在加载时运行 JavaScript,所以你得到了 ReferenceErrors,我把它改成了 No wrap - in jsfiddle.net/QkaNg/1
  • 谢谢,我已经更新了链接。

标签: javascript function parameter-passing


【解决方案1】:

我已经找到了解决方案,也许其他人将来会需要这个:

html:

<input type="text" name="quantity" id="test" value="1" />
<input type="button" onclick="updateQuantity('test','add')" value="+" />
<input type="button" onclick="updateQuantity('test','not')" value="-" />
<input type="button" onclick="passData('test', 2, getUpdatedQty)" value="button passing the data" />

js:

function updateQuantity(ID, action){
var prodQty = document.getElementById(ID);
var maxQty = 3;

        if(action === 'add') { prodQty.value++; 
            if(prodQty.value > maxQty) { prodQty.value = maxQty }

         } else { prodQty.value--; 
                if(prodQty.value <= 0) { prodQty.value = 1 }
         } 
    } 

    function passData(p1, p2, p3) {

    alert('First: '+p1 + ', Second: ' + p2 +', Third: '+ p3());
    }

function getUpdatedQty() {
    var prodQty = document.getElementById('test'); return prodQty.value;
}

jsFiddle

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多