2012-07-06 167 views
1

我有一個應用程序[這裏] [1],用戶可以選擇他們的選項和答案。請按照以下步驟申請。如何在點擊「添加」按鈕後更改答案按鈕?

  • 第1步:當您打開應用程序時,你會看到「打開網格」鏈接, 單擊它並選擇一個選項類型,你選擇一個選項後, 將在底部顯示的答案按鈕。例如,如果您選擇的 選項爲「5」,則它將顯示5個應答按鈕「A-E」, 如果選項選擇爲8,則將顯示8個應答按鈕「A-H」。

現在這很好。正如您所看到的,根據從網格中選擇的選項顯示正確數量的答案按鈕。但是我的問題是如果用戶想要添加以前的選項。請看下面的步驟:

  • 第2步:您會看到左手邊一個綠色的加號按鈕,點擊它 ,這將打開一個模態窗口。
  • 步驟3:在搜索框中輸入「AAA」,然後點擊「提交」按鈕,它將顯示來自數據庫的行。
  • 第4步:如果你看第一行,你可以看到在「選項類型」列下,它是A-D。點擊「添加」按鈕選擇此行。

會發生什麼事是, 模態窗口將關閉,如果你看一下答案,選項 在右手側控制,你可以看到選項類型 文本框包含數字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; 
    } 
+0

開放的網格鏈接似乎被打破,得到一個錯誤'價值是未定義的' – quickshiftin 2012-07-06 17:10:49

+0

@quickshiftin你確定,因爲我測試了它,它似乎很好。不要使用Internet Explorer。如果有的話,請使用chrome或firefox – user1490145 2012-07-06 17:24:44

+0

@ user1490145您的應用程序可以在任何瀏覽器上使用,先生。 – 2012-07-06 17:29:16

回答

0

分析完上面的代碼以及你給出的鏈接的HTML源代碼後,看起來你只是落後了一步。您只將網格值(在上面的情況下爲4)分配給mainGridTxt輸入框中。您需要觸發網格按鈕上的點擊事件。

把下面的代碼後$ model.close

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

上面的代碼將觸發格按鈕的Click事件ID爲 'btn4'。