「はい」、「いいえ」、「真」、「偽」ボタンのテスト入力が正しくありません。ここで自分の目で確かめてテストすることができます。以下の手順に従ってください。
- 「グリッドを開く」をクリックし、「TrueまたはFalse」ボタンを選択すると、「True」および「False」ボタンが表示されます。
- 「True」ボタンをクリックすると、ボタンが緑色に変わり、そのボタンのテキスト入力が下に表示されます。これで結構です。
- ここで「False」ボタンをクリックすると、「False」ボタンがオンになり、「True」ボタンがオフになります(白に戻ります)。ここで、良い点は「False」テキスト入力が表示されることですが、悪い点は「True」テキスト入力が削除されないことです。
だから私の質問は、ユーザーが「True」または「False」または「Yes」または「No」のいずれかの代替ボタンをクリックした場合、オフにしたばかりのボタンで入力を削除したいということです。
これはどのように達成できますか?
以下は、入力を追加および削除する関数です。
function btnclick(btn)
{
var context = $(btn).parents('#optionAndAnswer');
if (context.length == 0) {
context = $(btn).parents('tr');
}
var $btn = $(btn);
var value = btn.value;
var id = $btn.attr('id');
var $otherYNBtn = value === "Yes" ? $(context.find("input[value='No']")) : $(context.find("input[value='Yes']"));
var $otherTFBtn = value === "True" ? $(context.find("input[value='False']")) : $(context.find("input[value='True']"));
if ($(context.find("input[value='Yes']")).hasClass('answerBtnsOn')) {
$otherYNBtn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
}
else if ($(context.find("input[value='No']")).hasClass('answerBtnsOn')) {
$otherYNBtn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
}
if ($(context.find("input[value='True']")).hasClass('answerBtnsOn')) {
$otherTFBtn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
}
else if ($(context.find("input[value='False']")).hasClass('answerBtnsOn')) {
$otherTFBtn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
}
if ($(btn).hasClass('answerBtnsOff')) {
var n = $("input[name='" + id + "value']").length;
var hid = "hidden" + id + n + "value";
$(btn).attr("data-hid", hid);
// append those values to the form
var input = '<input type="text" id="' + hid + '" value="' + value + '" name="' + id + 'value" />';
$('#QandA').append(input);
// toggle the button
$btn.removeClass('answerBtnsOff').addClass('answerBtnsOn');
// do the opposite - remove the input
}
else {
$("#" + $(btn).attr("data-hid")).remove();
$btn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
}
$('.answertxt', context).val(context.find('.answerBtnsOn').length > 0 ? context.find('.answerBtnsOn').length : 0);
return false;
}
以下は、「True」、「False」、「Yes」、「No」ボタンです。
<table id="optionAndAnswer" class="optionAndAnswer">
<tr>
<tr class="answer">
<td>3. Answer</td>
<td>
<table id="answerSection">
<tr>
<td>
<input class="answerBtns answers answerBtnsOff" name="answerName[True]" id="answerTrue" type="button" value="True" onclick="btnclick(this);"/>
<input class="answerBtns answers answerBtnsOff" name="answerName[False]" id="answerFalse" type="button" value="False" onclick="btnclick(this);"/>
<input class="answerBtns answers answerBtnsOff" name="answerName[Yes]" id="answerYes" type="button" value="Yes" onclick="btnclick(this);"/>
<input class="answerBtns answers answerBtnsOff" name="answerName[No]" id="answerNo" type="button" value="No" onclick="btnclick(this);"/>
</td>
</tr>
</table>
</td>
</tr>
</table>