1

商品の価格を計算する機能があります。私はJavaScript開発者ではないので、知識は非常に限られています。

テキストフィールドスクリプトの値を変更して、製品の価格を計算します。

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

問題は、次のことが行われた場合にのみスクリプトがトリガーされることです。

  1. テキストフィールドに値を挿入します
  2. テキストフィールドの外側をクリックします
  3. テキストフィールドに戻ってクリックします

必要なのは、[更新]というボタンだけです。クリックすると、ステップ2と上記のステップの機能が追加されます。

正しく説明したかどうかわかりませんので、この問題を解決するために必要な情報が他にある場合はお知らせください。

こちらがサイトへのリンクです。

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

更新ボタンを修正/追加しようとしているフィールドは、EnterSquareMeterです。

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ライブラリはわかりませんが、コード内にこれら2行があり、idの入力にイベントリスナーを追加しているようですqty

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

彼らはイベントをリッスンしているため、focus入力フィールドがフォーカスを取得したときにのみトリガーされます。

代わりにキーアップイベントをリッスンするようにそれらを変更すると、うまくいくと思います。フレームワークに精通していなくても、変更するのはこれだけだと思います。

$('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

onfocusの代わりにonchangeまたはonblurを使用してください!

于 2012-08-06T10:50:05.533 に答える
0

onchangeを使用します。これにより、値が変更されるたびにアクティブになります。

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

まず、これはJavaScriptであり、Javaではありません。したがって、Java開発者ではなく、JavaScriptである必要があります。

問題を解決するには、onclick属性を使用して新しいボタンを作成し、テキストフィールドのonfocus属性にある関数をそこで実行します。または、別のイベントを取得することもできます。たとえば、onchangeやonblurなどです。

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

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

于 2012-08-06T10:51:39.023 に答える
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 に答える