我有一个应用程序 [here][1],用户可以在其中选择他们的选项和答案。请按照以下步骤申请。
- 步骤1:当你打开应用程序时,你会看到“打开网格”链接,点击它并选择一个选项类型,选择一个选项后,它会在底部显示答案按钮。例如,如果您选择的选项是“5”,它将显示 5 个答案按钮“A - E”,如果选择的选项是 8,它将显示 8 个答案按钮“AH”。
现在这很好。如您所见,答案按钮的正确数量取决于从网格中选择的选项。但我遇到的问题是用户是否想添加以前的选项。请看以下步骤:
- 第2步:您会在左侧看到一个绿色的加号按钮,单击它,这将打开一个模式窗口。
- 第 3 步:在搜索框中键入“AAA”,然后单击“提交”按钮,它将显示数据库中的行。
- 第 4 步:如果您查看第一行,您可以在“选项类型”列下看到它是 AD。通过单击“添加”按钮选择该行。
将会发生的是模式窗口将关闭,如果您查看右侧的答案和选项控件,您可以看到选项类型文本框包含数字 4(这是因为选项类型是“AD”所以有是 4 个选项“A、B、C、D”),所以它应该显示答案按钮 AD 但它没有,它根本不会改变答案按钮,它们保持不变。
所以我的问题是如何在用户单击“添加”按钮后显示正确的答案按钮?
下面是从网格中选择选项后导入答案按钮的代码:
$('.gridBtns').on('click', function()
{
var clickedNumber = this.value;
$(this).closest('.option').siblings('.answer').find('.answers').each(function(index) {
if (!isNaN(clickedNumber) && index < clickedNumber) {
$(this).show();
} else {
$(this).hide();
$(this).removeClass('answerBtnsOn');
$(this).addClass('answerBtnsOff');
}
var $this = $(this);
var context = $this.parents('.optionAndAnswer');
console.log($this);
});
if (clickedNumber === 'True or False') {
$(this).closest('.option').siblings('.answer').find('input[name=answerTrueName]').show();
$(this).closest('.option').siblings('.answer').find('input[name=answerFalseName]').show();
} else if (clickedNumber === 'Yes or No') {
$(this).closest('.option').siblings('.answer').find('input[name=answerYesName]').show();
$(this).closest('.option').siblings('.answer').find('input[name=answerNoName]').show();
}
getButtons();
});
});
function getButtons()
{
var i;
if (initClick == 0) {
for (i = 65; i <= 90; i++) { // iterate over character codes for A to Z
$("#answer" + String.fromCharCode(i)).removeClass("answerBtnsOn").addClass("answerBtnsOff");
}
initClick = 1;
}
// code above makes sure all buttons start off with class answerBtnsOff, (so all button are white).
}
以下是控制单击“添加”按钮后发生的情况的函数:
function addwindow(numberAnswer,gridValues) {
if(window.console) console.log();
if($(plusbutton_clicked).attr('id')=='mainPlusbutton') {
$('#mainNumberAnswerTxt').val(numberAnswer);
$('#mainGridTxt').val(gridValues);
} else {
$(plusbutton_clicked).closest('tr').find('input.numberAnswerTxtRow').val(numberAnswer);
$(plusbutton_clicked).closest('tr').find('input.gridTxtRow').val(gridValues);
}
$.modal.close();
return false;
}