0

私が行っているWebページには、各行をクリックして変更できるテーブルがあります。これは、各セルの内容を相対値を含む入力フィールドに置き換えることによって行われます。ユーザーが行った変更をキャンセルできるようにするために、置換を行う前にテーブル行全体の内容を保存し、それを使用して新しいhtml文字列を作成してテーブル行に配置します(基本的には、関数に配置するだけです)。変更を元に戻すためにボタンが押されたときに呼び出される呼び出し)。アラートで表示しようとすると、文字列は正常に見えます。ただし、.htmlで.htmlを呼び出して文字列をページに配置した後、文字列がスクランブルされているように見えるため、firebugはエラーを返します。私が言いたいのは、

<tr><td>somedata</td><td><input type=button onclick=fun('oldTrContent')/></td></tr>

これは

<tr><td>somedata</td><td><input type=button oldTrContentNotInOrder') onclick=fun(/></td></tr>

明らかに機能しません。この動作が何らかのフォーマットエラーによって引き起こされたかどうかを確認するために、関数にアラートを入れてみましたが、.html()を呼び出した瞬間まではすべて正常に見えます。私が使用したコードは次のとおりです。

function mostraModificaCompet(ids, nome){
var id='#'+nome;
var statoPrec=escape($(id).html());
alert(statoPrec);
var d=$(id+" .data").html();
var c=$(id+" .caus span").html();
var de=$(id+" .descr").html();
var pu=$(id+" .prezzou").html();
var q=$(id+" .qta").html();
var pt=$(id+" .prezzot").html();
var iu=$(id+" .ivau").html();
var it=$(id+" .ivat").html();
var t=$(id+" .tot").html();
var r=$(id+" .res").html();
var pr=$(id+" .progr").html();
var str="<td class=data ><input type=text value="+d+" /></td><td class=caus ><select class=selcaus ></select></td><td class=descr ><input type=text value="+de+" />\
</td><td class=prezzou ><input type=text value="+pu+" /></td><td class=qta ><input type=text value="+q+" /></td><td class=prezzot ><input type=text value="+pt+" disabled /></td>\
<td class=ivau ><input type=text value="+iu+" /></td><td class=ivat ><input type=text value="+it+" disabled /></td><td class=tot ><input type=text value="+t+" disabled /></td><td>\
<input type=button value='Conferma' onclick=modificaCompet("+ids+", '"+nome+"') /></td><td><input type=button value=Annulla onclick=ripristinaCompet('"+nome+"', '"+statoPrec+"') /></td>";
alert(str);
$(id).html(str);
}

古いコンテンツを保存する変数はstatoPrecで、これをstrの作成時に使用します(文字列の最後にあります)。答えてくれた人に事前に感謝します。

4

2 に答える 2

0

問題は、最初にtdセル内の値から移動するときに、innerHTMLを介してそれらにアクセスできることであるように思われます。ただし、入力に変わると、入力のinnerHTMLではなく、入力の値になります。1つは要素の.html()を使用し、もう1つは要素の.val()を検索する、2つの関数を作成する必要がある場合があります。

于 2012-10-04T17:58:32.267 に答える
0

値を無効なhtmlに設定しようとしていますが、onclick=modificaCompet("+ids+", '"+nome+"')その周りに引用符が必要なので、onclick=\"onclick=modificaCompet("+ids+", '"+nome+"')\"です。そして、あなたが引用しなかった他の属性。

于 2012-10-04T18:01:34.853 に答える