以下に使用できるアプリケーションがありますが、基本的には、ユーザーが行から情報を追加した後も変更されないテキスト入力です。
アプリケーションは次のとおりです。
以下の手順に従ってください。
1:アプリケーションを開くと、[質問の追加]ボタンが表示されます。このボタンをクリックすると、その下に表の行が追加されます。
2:追加された行内で、ボタン「B」と「C」をクリックすると、これらのボタンが緑色に変わり、オンになっていることを意味します。その下に、オンにしたボタンの値を示す2つのテキスト入力が表示されます。
3:行の左側に緑色のプラスボタンが表示されます。このボタンをクリックすると、モーダルウィンドウが表示されます。
4:モーダルウィンドウに検索バーが表示されます。検索バーに「dog」と入力して、検索ボタンをクリックします。
5:検索に関連する行が表示されます。右側の[追加]ボタンをクリックして情報を追加してください。
6:添付の行で、ボタン「A」が強調表示され、他のボタンがオフになっていることがわかります。
しかし、問題は、下のテキスト入力が変更されていないことです。ボタン「A」がオンになっていて、オンになっている唯一のボタンであるため、ITは値「B」と「C」のテキスト入力を引き続き表示します。ボタン「A」のテキスト入力としてのみ表示する必要があります。テキスト入力は削除する必要があります。
だから私の質問は、ユーザーがモーダルウィンドウから情報を追加した後、テキスト入力を変更して、オンになっているボタンの値のみを表示する方法です。
以下は、回答ボタンを更新するコードです。
updateAnswer(context , iQuestionIndex, bDisableAppend);
var container = $btn.closest(".optionAndAnswer");
$(".answertxt", container).val( $(".answerBtnsOn", container).length );
return false;
}
function updateAnswer(context, iQuestionIndex, bDisableAppend) {
var _sCurrQ_Class = 'q_' + iQuestionIndex;
var _oCurrAnswerContainer = jQuery('#answer_selections .' + _sCurrQ_Class);
if (!_oCurrAnswerContainer.length) {
_oCurrAnswerContainer = jQuery(document.createElement('div')).addClass(_sCurrQ_Class);
!bDisableAppend && jQuery('#answer_selections').append(_oCurrAnswerContainer);
}
_oCurrAnswerContainer.html('');
var value, id;
// loop through all buttons with 'on' status and their info to the current answer container
$('.answerBtnsOn', context).each(function(i, btn) {
var $btn = $(btn);
value = btn.value;
id = $btn.attr('id');
var n = $("input[name='" + id + "value']").length;
var hid = "hidden" + id + n + "value";
$(btn).attr("data-hid", hid);
if (!bDisableAppend) {
// append those values to the form
var input = '<input type="text" id="' + hid + '" value="' + value + '" name="' + id + 'value" />';
_oCurrAnswerContainer.append(input);
}
});
}
以下は、モーダルウィンドウとその中のすべてを制御するコードです。
関数addwindow(btn){
var answers = $.map(btn.split(''),function(chr){ return "#answer"+chr; }).join(',
var answersrow = $.map(btn.split(''),function(chr){ return "#answer"+chr+"Row"; }).join(', ');
}
if($(plusbutton_clicked).attr('id')=='mainPlusbutton') { //green plus button at top of application
$('#answerSection').find('.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');
$(answers).addClass("answerBtnsOn").siblings().addClass('answerBtnsOff');
} else {
//green plus button within an appended row
$(plusbutton_clicked).closest('tr').find('.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');
$(plusbutton_clicked).closest('tr').find(answersrow).addClass("answerBtnsOn").siblings().addClass('answerBtnsOff');
}
$.modal.close();
return false;
}