2

次のようなjQueryコードがあります:

$(function($) {
$('input.autonumeric').autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); });    

そのコードでは、 -class を持つすべての入力テキストはautonumeric数値でのみ入力できます。

しかし、から入力テキストタグを書くinnerHTMLと、まったく機能しません。これは私がコードを書く方法です:

function edit(){
  var current = window.event.srcElement;
  while ( (current = current.parentElement) && current.tagName !="TR");
  var row = current.childNodes;
  td = row.item(0); var temp = td.innerHTML;
  td.innerHTML = "<input type=\"text\" value=\""+temp+"\" class=\"autonumeric\" \>";
}

どうすればこのコードを解決できますか? 注: 私の英語力が十分でない場合は申し訳ありません。

4

4 に答える 4

1

新しく追加された要素に対しても autoNumeric を実行する必要があります。次のように、新しい入力の作成時にそれを行うことができます。

$(td).html($("<input type=\"text\" value=\""+temp+"\" class=\"autonumeric\" \>").autoNumeric({'....'}));

または、バージョンを終了して実行します

$('input.autonumeric').autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); }); 

その後また。

于 2012-07-04T14:33:11.967 に答える
0

すでに jQuery を使用しているのであれば、要素を jQuery で作成してみませんか?

var e = $('<input type="text" />');
e.autoNumeric({aSep: ',', aDec: '.',vMax:'1000000000000'}); });
td.html(e);

もちろん、コードの他の部分を調整して、td が jQuery オブジェクトであることを確認する必要があります。

于 2012-07-04T14:30:44.923 に答える
0

jQuery プラグイン メソッドが実行されると、現在DOM に存在.autoNumeric(...)するすべての入力フィールドに影響します。が呼び出されて新しいものが作成されると、再度呼び出す必要があります。edit()input.autonumeric.autonumeric(...)

于 2012-07-04T14:31:03.007 に答える
0

innerHTML を追加したら、autoNumeric 関数を再度呼び出す必要があります。これは、ページの読み込み時に実行されるコードは、ページの読み込み時に DOM に存在する要素しか「見る」ことができないためです。要素を追加したら、イベントをそれに添付する必要があります。

于 2012-07-04T14:32:21.227 に答える