点击“添加”按钮后如何更改答案按钮?

时间:2012-07-06 16:57:22

标签: php javascript jquery

我有一个应用程序[here] [1],用户可以选择他们的选项和答案。请按照以下步骤进行申请。

  • 步骤1:当您打开应用程序时,您将看到“打开网格”链接, 单击它并选择一个选项后选择一个选项类型 将在底部显示答案按钮。例如,如果 你选择的选项是“5”,它会显示5个答案按钮“A - E”, 如果选项是8,它将显示8个答案按钮“A-H”。

现在这很好。如您所见,根据从网格中选择的选项,可以看到正确数量的答案按钮。但我遇到的问题是用户是否想要添加以前的选项。请看下面的步骤:

  • 步骤2:您将在左侧看到绿色加号按钮,然后单击 它,这将打开一个模态窗口。
  • 第3步:在搜索框中输入“AAA”,然后点击“提交” 按钮,它将显示数据库中的行。
  • 步骤4:如果查看第一行,您可以在“选项类型”列下看到它是A-D。单击“添加”按钮选择此行。

将会发生什么    模态窗口将关闭,如果你看看答案和选项    在右侧控制,可以看到Option Type    文本框包含数字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;
    } 

1 个答案:

答案 0 :(得分:0)

在分析了您的上述代码以及您提供的链接的HTML源代码之后,看起来您只是落后一步。您只需在mainGridTxt输入框中指定网格值(上例中为4)。您需要在网格按钮上触发click事件。

将以下代码放在$ model.close

之后
$('#btn'+gridValues).trigger('click');

上面的代码将触发id为'btn4'的网格按钮上的click事件。