2

ここで誰かが私を助けてくれることを望んでいました。簡単なはずですが、解決策を見つけることができませんでした。

次のようなテーブルがあります。

ここに画像の説明を入力

左端onclickのコントロールのイベント ハンドラにJavaScript 関数を追加しました。CheckBoxこれが私のJavaScriptです:

// Toggle row colors when a "N/A" checkbox is clicked.
function handleNAClick(cb) {
    if ($(cb).parent().parent().hasClass('silver')) {
        $(cb).parent().parent().removeClass('silver').addClass('white');
    }
    else {
        $(cb).parent().parent().removeClass('white').addClass('silver');
    }
}

CheckBoxこの関数は、がクリックされたときに行の色を切り替えます。

私ができるようにしたいTextBoxのは、行の右端にあるCheckBoxがクリックされた場合に有効/無効にすることです。

このテーブルは動的に生成され、事前にコントロールの ID がわかりません。

ご覧のとおり、テーブルの行のハンドルを取得して色を変更することはできますが、何らかの理由TextBoxでその行のハンドルを取得する方法がわかりません。

私の調査から、これはjQueryでテキストボックスを有効にするために機能するはずですが、そうではありません:

$(cb).parent().parent().find('input').removeAttr('disabled');

どちらのテキストも変更できませんTextBox

$(cb).parent().parent().find('input').val('hotdog');

それは単純であるべきだと思われるので、私はどういうわけかそれを「太っている」と思う傾向があります.

私が望むことを行うためのより良い方法を知っている人はいますか? 私は何を台無しにしていますか?

ありがとうございました!

4

2 に答える 2

3

<textarea>の代わりにを使用しているようです。<input>この場合、次のように動作します。

$(cb).parents('tr:first').find('textarea').prop('disabled', false);

要素のプロパティを変更する必要があるため、.prop()メソッドを介して行う必要があるため、属性を削除しても何も起こりません。

于 2013-07-20T01:21:08.330 に答える
0

迅速かつ簡単な解決策として、正しい方向に進んでいるようです。探しているものを見つけるには、dom traversal メソッドの適切な組み合わせを取得する必要があります。テーブルの右端のセルは単純な入力でよろしいですか? テキストエリアのように見えますが、わかりません。一般的には、このシステムから離れようとしますが、後で別の列またはラッパー div を追加する必要がある場合はどうすればよいでしょうか? 役立つように、動的生成コードを少し変更してみる価値があるかもしれません。

于 2013-07-20T01:23:42.420 に答える