2012-07-06 1 views
0

내 페이지 맨 위에는 사용자가 그리드에서 옵션을 선택할 수있는 옵션 및 응답 컨트롤이 있으며 관련 응답 단추가 표시됩니다 선택한 옵션에서아래 코드 줄 끝에 트리거 이벤트를 추가하는 방법

옵션 페이지의 상단에 제어 대답 : 다음은

는 옵션 및 응답 제어 기능을 저장하는 HTML 코드입니다

<table id="optionAndAnswer" class="optionAndAnswer"> 
<tr class="option"> 
<td>1. Option Type:</td> 
<td> 
<div class="box"> 
    <input type="text" name="gridValues" class="gridTxt maxRow" id="mainGridTxt" readonly="readonly" /> 
    <span href="#" class="showGrid" id="showGridId">[Open Grid]</span> 
</div> 

<?php 
    $num = range("3","26"); 
?> 

<table class="optionTypeTbl"> 
<tr> 

    <?php 
    $i = 1; 
    foreach($num as $key => $val){ 
     if($i%7 == 1) echo"<tr><td>"; 
     echo"<input type=\"button\" value=\"$val\" id=\"btn".$val."\" name=\"btn".$val."Name\" class=\"gridBtns gridBtnsOff\">";   
     if($i%7 == 0) echo"</td></tr>"; 
     $i++; 
    } 
    ?> 

     </tr> 
     </table> 

     </td> 
</tr> 
<tr class="answer"> 
<td>3. Answer</td> 
<td> 

<?php 
    $a = range("A","Z"); 
?> 

<table id="answerSection"> 
    <tr> 

<?php 
    $i = 1; 
    foreach($a as $key => $val){ 
     if($i%7 == 1) echo"<tr><td>"; 
     echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";  
     if($i%7 == 0) echo"</td></tr>"; 
     $i++; 
    } 
?> 
    </tr> 
</table> 
</td> 
</tr> 
</table> 

응답 버튼의 정확한 수를 표시 코드의 라인 이제

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

나는이 코드 조각을 포함 havn't는하지만, 사용자는 "추가"버튼을 클릭 할 수 있습니다 : 추가 버튼을 클릭 한 후이 코드 버튼을 클릭하여 옵션 유형 텍스트 상자에 옵션 유형을 추가하십시오. 옵션 유형이 텍스트 상자에 삽입되면 옵션 값이 그리드에서 일치하는 옵션 버튼을 자동으로 선택합니다. 위의 트리거 코드는 어떤 옵션 유형이 올바른지 확인하여 올바른 응답 버튼 수를 표시 할 수 있습니다 그리드에서 선택합니다.

문제는이 옵션이 페이지 상단의 옵션 및 응답 컨트롤에서만 작동한다는 것입니다. 사용자는 애플리케이션에 행을 추가 할 수 있으며 각 행에는 자체 옵션 및 응답 컨트롤이 추가됩니다. 추가 및 행 내 대답 및 옵션 컨트롤의 코드는 다음과 같습니다 :이 트리거 경우

function insertQuestion(form) {  



     var $tbody = $('#qandatbl > tbody'); 
     var $tr = $("<tr class='optionAndAnswer' align='center'>"); 
     var $options = $("<div class='option'>Option Type:<br/></div>"); 
     var $answer = $("<div class='answer'>Answer:<br/></div>"); 

     $('.gridTxt', context).each(function() { 

     var $this = $(this); 
     var $optionsText = $("<input type='text' class='gridTxtRow maxRow' readonly='readonly' />") 
     .attr('name',$this.attr('name')+"[]") 
     .attr('value',$this.val()) 
     .appendTo($options) 
     .after("<span href='#' class='showGrid'>[Open Grid]</span>"); 

     $questionType = $this.val(); 

     }); 


    var $this, i=0, $row, $cell; 
    $('#optionAndAnswer .answers').each(function() { 
     $this = $(this); 
     if(i%7 == 0) { 
      $row = $("<tr/>").appendTo($answer); 
      $cell = $("<td/>").appendTo($row); 
     } 
     var $newBtn = $("<input class='answerBtnsRow answers' type='button' style='display:%s;' onclick='btnclick(this);' />".replace('%s',$this.is(':visible')?'inline-block':'none')).attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class')); 


     $newBtn.appendTo($cell); 

     i++; 
    }); 


     $td.append($options); 
     $td.append($answer); 
     $tbody.append($tr); 

    } 

그래서 내 질문이된다 : 단지의 주요 옵션에 대한 $('#btn'+gridValues).trigger('click'); 작품 상단에 컨트롤 대답, 어떻게이를 포함 할 수 있습니다 특정 행 내에서 응답 및 옵션 컨트롤에 올바른 응답 버튼 수를 표시 할 수 있도록 트리거 할 수 있습니까?

:

난 그냥 옵션에는 #btn 없기 때문에이 코드의 끝 부분에있는 트리거를 포함하는 방법에 대한 도움 행의 컨트롤에 대답해야 행을 찾을 수있는 시작 코드를

$(plusbutton_clicked).closest('tr').....; 
+0

당신은,이 바이올린에서 작동하지 않습니다 그래서 그것에서 PHP 코드를 가지고 @marabutt 그래서 우리는 코드 –

+0

를 테스트 할 수 있습니다 jsfiddle에 넣어 당신이 나 한 페이지에 간단한 예제를 만들어 보내려고 할 수 당신은 그것에 URL을? – user1490145

+0

그래, 렌더링 된 HTML을 덤프합니다. –

답변

0

이렇게하려면이 값을 수정해야하지만이 작업이 필요합니까?

$(plusbutton_clicked).closest('tr').find(".answerBtnsRow").click(); 
+0

코드 줄을 테스트했지만 효과가 없습니다. 옵션 및 응답 컨트롤이있는 행에서 이전에 4 개의 응답 버튼 (A, B, C, D)을 의미하는 "4"의 옵션 유형이있는 경우 다음과 같은 다른 옵션 유형을 선택하면 "추가"버튼을 클릭하면 "7", 옵션 유형 텍스트 상자가 "4"에서 "7"로 변경되지만 7 개의 응답 버튼 (A, B, C, D, E, F, G)이 아닌 4 개의 응답 버튼이 표시됩니다.). – user1490145

관련 문제