2

AJAX リクエストによって作成されたテーブルがあります。各 TD には、その中に Textbox Input があります。これにより、ユーザーはコンテンツを編集できます。ユーザーが(ユーザーの裁量で)コンテンツを編集できない「読み取り専用」モードが必要です。このために、ユーザーが各テキストボックス入力を

テキストボックスの値をテキストとして含むタグ。現在、私のコードは各入力をテキスト「object Object」に置き換えています。(たぶん、値をテキスト文字列に正しく変換していないのでしょうか??) 何が問題なのかを教えてくれるヒントがあれば、大いに感謝します。ありがとう!!

これは私の現在のスクリプトです:

<script type="text/javascript">
    $("#permissionsbutton").live('click',function(){
        sss = $('.cells').each(function(){$(this).val()});
        $(".cells").replaceWith("<p class='readonlycells' type='text'>" + sss + "</p>");
    });
    // if this worked, I would write another few lines
    // to be able to switch back to having inputs
</script>

これは、HTML がどのように見えるかのスニペットです。

<div id="readwrite" class="settings">
    <h3>Permissions</h3>
    <button id="permissionsbutton">Switch to Read Only Mode</button>
</div>
<table><tr>
    <td><input class='cells' type=text value='Steve'></td>
    <td><input class='cells' type=text value='Mary'></td>
    <td><input class='cells' type=text value='Big Bird'></td>
</tr></table>
4

3 に答える 3

3

jQueryのeach関数は、呼び出されたjQueryオブジェクトを返します($('cells')あなたの場合)。したがって、現在のコードは、.cellsセレクターに一致する各要素を jQuery オブジェクトに置き換えています。これは、「オブジェクト オブジェクト」にシリアル化されています。

あなたが望むのはもっと似たものです

$("#permissionsbutton").live('click', function() {
    $(".cells").each(function() {
        $(this).replaceWith($(this).val());
    }
});
于 2010-12-03T00:42:08.253 に答える
1
$("#permissionsbutton").live('click',function(){ 
  $('.cells').each(function(){
    var cell=$(this);
    cell.replaceWith('<span class="cells_ro">'+cell.val()+'</span>');
  }); 
});

または、セルを無効にするだけです。

$("#permissionsbutton").live('click',function(){ 
  $('.cells').attr('disabled',true);
});
于 2010-12-03T00:39:57.707 に答える
0

どうですか:

$("#permissionsbutton").click(function(){
$('.cells').attr('disabled','disabled');
});

ここで試してみてください

于 2010-12-03T00:44:36.303 に答える