1

我有一个计算产品价格的函数。我不是 JavaScript 开发人员,所以我的知识非常有限。

通过更改文本字段脚本中的值来计算产品的价格。

 <input type="text" value="" name="options[22]" class="input-text"
 onfocus="opConfig.reloadPrice()">

问题是脚本仅在完成以下操作时才会触发:

  1. 将值插入文本字段
  2. 单击文本字段外的某处
  3. 单击返回文本字段

我所需要的只是一个按钮,说刷新,单击它将具有第 2 步和第 2 步的功能。

我不确定我是否正确解释了它,因此如果需要更多信息来解决此问题,请告诉我。

这是该网站的链接。

http://www.floorstodoors.mldemo.co.uk/spotlight/oak-value-lacquered-3-strip.html

我试图修改/添加刷新按钮的字段是输入平方米

4

6 回答 6

2

您可以将事件添加到按钮,并通过分配 ID 来检索对输入的引用:

<input type="text" value="" name="options[22]" id="price" class="input-text" />
<input type="button" value="Refresh" onclick="reloadPrice();" />

function reloadPrice() {
    var price = "0.00"; // set your price here

    // get a ref to your element and assign value
    var elem = document.getElementById("price");
    elem.value = price;
}
于 2012-08-06T10:50:58.323 回答
1

我不确定我是否完全理解你,但这是你需要的吗?

<input type="text" value="" name="options[22]" class="input-text">
<input type="button" onclick="opConfig.reloadPrice()" value="Refresh" />

带有单击事件侦听器的按钮,以便在单击刷新按钮opConfig.reloadPrice()时执行该方法。

根据评论编辑:

我不确定您使用的是什么 JavaScript 库,但是您的代码中有这两行似乎将事件侦听器添加到带有 id 的输入中qty

$('qty').observe('focus',function(){
    $('qty').setValue($('qty').getValue().replace(/[^0-9]/g,''));
});     
$('qty').observe('focus',this.getFromQties.bind(this))

他们正在监听focus事件,因此仅在您的输入字段获得焦点时触发。

如果您修改它们以侦听 keyup 事件,我相信它会更好地工作。在不熟悉框架的情况下,我想唯一需要改变的是:

$('qty').observe('keyup',function(){
    $('qty').setValue($('qty').getValue().replace(/[^0-9]/g,''));
});     
$('qty').observe('keyup',this.getFromQties.bind(this))
于 2012-08-06T10:49:29.823 回答
0

使用 onchange 或 onblur 代替 onfocus!

于 2012-08-06T10:50:05.533 回答
0
All I need is a button saying refresh that by clicking it will have functionality

为此,您需要一个带有 onclick 侦听器的按钮,请执行以下操作。

<input type="button" value="Refresh" onclick="opConfig.reloadPrice();" />

<input type="text" value="" name="options[22]" class="input-text"/>
于 2012-08-06T11:15:50.673 回答
0

使用onchange。这将在值更改时激活:

<input type="text" value="" name="options[22]" class="input-text" onchange="opConfig.reloadPrice()">
于 2012-08-06T10:51:15.170 回答
0

首先:这是 JavaScript 而不是 Java - 所以你必须是 javascript 而不是 Java 开发人员。

为了解决您的问题,您可以创建一个带有 onclick 属性的新按钮,并在那里执行您在文本字段中的 onfocus 属性中拥有的函数。或者您可以参加另一个活动 - 例如 onchange 或 onblur ..

<input type="text" onchange="..yourfunctionhere...">

http://www.w3schools.com/js/js_events.asp

于 2012-08-06T10:51:39.023 回答