0

次のようなテキスト入力がたくさんあるテーブルがあります: alt text http://img380.imageshack.us/img380/6697/snapsh.png

(彼らは数人の学生のためのテストの印です)。

すべてのフィールドにはコメントを追加するためのアイコンが関連付けられているため、アイコンをクリックすると、ダイアログにテキストエリアが表示され、その値が非表示の入力に保存される必要があります。

マークフィールドの例:

<input class="num" type="text" size="2" value="5.69" name="calif[57][6]"/>
<a id="57_6" class="addObs" title="Add comment" href="#">
<img alt="Add" src="http://localhost/xxx/assets/img/comment.png"/>
</a>

各リンクはstudentID_itemIDで識別されます

これは私がコーディングしたものですが、まったく機能しません。

var opciones = {
        title: 'Add comment',
        modal: true,
        buttons: {
            OK: function() {
                $(this).dialog('close');
                x = $('#obserText').val();
                $('#obser' + id).val(x);

            }
        }
    };

    $('.addObs').click(function(){
        x = this.id.split('_');
        y = '[' + x[0] + '][' + x[1] + ']';

        // If the hidden file exists, show its value
        // It should show the dialog again to allow edit the comment, but I'll leave it until later
        if (document.getElementById('obser' + y))
        {
            alert ($('#obser' + y).val());
        }
        //If not...
        else
        {
            //Create it
            $(this).parent().prepend('<input type="hidden" id="obser' + y + '"/>');

            //Show the dialog
            dialog = $('<div></div>')
                .html('<textarea id="obserText"></textarea>')
                .dialog(opciones);


        }

IDを渡して、コメントを非表示の入力に保存する方法がわかりません。

よろしくお願いします。英語でごめんなさい

4

2 に答える 2

1

これらの変更を加えてテストします。

var opciones = {
        title: 'Add comment',
        modal: true,
        buttons: {
            OK: function() {
                $(this).dialog('close');
                x = $('#obserText').val();
                $('#obser' + id).val(x);
            }
        }
};

$('.addObs').click(function(){

  var id = this.attr("id");
  var x = id.split('_');
  var y = '[' + x[0] + '][' + x[1] + ']';

  // If the hidden file exists, show its value
  // It should show the dialog again to allow edit the comment, but I'll leave it until later
  if ($('#obser_' + id).length>0)
  {
    alert($('#obser_' + id).val());
  }
  else  //If not...
  {
    //Create it
    $(this).parent().prepend("<input type=\"hidden\" id=\"obser_" + id + "\" />");

    //Show the dialog
    if ($("#obserText").length>0)
      $("#obserText").remove();     

    var xdialog = $("<div></div>").html("<textarea id=\"obserText\"></textarea>");
    xdialog.dialog(opciones);
  }
}
于 2009-10-15T20:01:19.397 に答える
0

私はそれを持っていると思います、括弧付きのIDは悪い考えです。そして、私は適切にxとyの名前を変更しました:D

var raw_id, split_id;

    var options = {
        title: 'Add comment',
        modal: true,
        buttons: {
            OK: function() {
                $(this).dialog('close');
                valor = $('#otext' + raw_id).val();
                $('#obser' + raw_id).val(valor);
                //console.log($('#obser' + raw_id).val());
                if (valor)
                {
                    $('a#' + raw_id).find('img').attr('src', base_url + 'assets/img/observacion_on.png');
                }
                else
                {
                    $('a#' + raw_id).find('img').attr('src', base_url + 'assets/img/observacion.png');
                }

            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    };    

    $('.addObs').click(function(){

        raw_id = this.id;
        split_id = raw_id.split('_');
        prep_id = '[' + split_id[0] + '][' + split_id[1] + ']';


        if ($('#obser' + raw_id).length > 0)
        {
            //console.log($('#obser' + raw_id).val());
            var dlg = $('<div></div>').html('<textarea id="otext' + raw_id + '">' + $('#obser' + raw_id).val() + '</textarea>');
            dlg.dialog(options);

        }
        else
        {
            $(this).parent().prepend('<input type="hidden" id="obser' + raw_id + '" name="obser' + prep_id +'" />');

            var dlg = $('<div></div>').html('<textarea id="otext' + raw_id + '"></textarea>');
            dlg.dialog(options);
        }
    });

しかし、コメントの編集は機能しません

于 2009-10-16T12:17:34.150 に答える