8

私は以下のjsfiddleアプリケーションを持っています:

JSFIDDLE

jsfiddleを開くと、「回答」ボタンを含むトップコントロールが表示されます。また、いくつかの文字ボタン、「True」ボタン、および「False」ボタンが表示されます。

「True」ボタンと「False」ボタンは完全に機能します。つまり、ユーザーが「True」をクリックしてから「False」をクリックすると、「True」と「False」の両方に答えることができないため、入力されたテキストが置き換えられます。 "。

しかし、文字ボタンには問題があります。文字ボタンをクリックすると、複数の文字ボタンをクリックできることに気付きますが、問題は、それらの文字の入力されたテキストが正しくないことです。複数の文字ボタンが選択されている場合は、それらすべての文字ボタンのテキスト入力を表示する必要があります。選択された最新の文字ボタンでテキスト入力を置き換えるのではありません。

それで、これを達成するためにコードで何を変更する必要があるかを誰かが知っていますか?

4

2 に答える 2

1

data-hidここでボタンのを生成します。

var hid = "hidden" + id + n + "value";  
$(btn).attr("data-hid", hid);

これに基づいて、入力フィールドを生成します。

var input = '<input type="text" id="' + hid + '" value="' + value + '" name="' + id + 'value" />';

この中のid変数は、ボタンのIDであり、answerCたとえば、次のようになります。したがって、これを使用すると、#hiddenanswerC0value最初にボタンをクリックしたときに非表示になります。

ただし、回答を追加すると、ボタンには次のように生成されたIDがあります。

.attr('id', $this.attr('id')+'Row');

Rowしたがって、最後に余分なものがあります。したがって、data-hidと入力ボックスも異なります(#hiddenanswerCRow0value)。

編集: 別の問題は、実際にはデータを作成しないことです-新しいボタンの非表示。ボタンをクリックした後、最初のボタンセットに対してのみ作成します。ただし、Cボタンがすでにアクティブになっている状態で(クリックした後)2番目のセットを作成すると、data-hidセットがないため、削除できません。

于 2012-10-05T22:50:30.750 に答える
0

問題が発生している最初のIDに入力IDが正しく設定されていないようです。IDが「#hiddenanswerC0value」であることを示していますが、間違いがなければ「#hiddenanswerCRow0value」である必要があります。もう少し詳しく調べますが、それで十分かもしれません。

于 2012-10-05T22:41:52.773 に答える