我有一个下面的表格,其中包含一个文本框,并在文本框旁边包含一个称为“开放网格”的超链接。如果用户点击该链接,它打开了一个网格,并在此网格它从3显示数字键 - 26.如何为模板编写.trigger()代码?
<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>
<table class="optionTypeTbl">
<tr>
<tr><td><input type="button" value="3" id="btn3" name="btn3Name" class="gridBtns gridBtnsOff">
<input type="button" value="4" id="btn4" name="btn4Name" class="gridBtns gridBtnsOff">
<input type="button" value="5" id="btn5" name="btn5Name" class="gridBtns gridBtnsOff">
<input type="button" value="6" id="btn6" name="btn6Name" class="gridBtns gridBtnsOff">
//...goes all the way to btn26
</tr>
</table>
</td>
</tr>
</table>
现在下面的代码是能够触发网格按钮中的一个,以指出一网格按钮被点击。此代码如下:
$('#btn'+gridValues).trigger('click');
现在一切顺利。
问题:
我的问题是,用户可以添加含有相同的模板顶部的选项控制一行。但是在此选项和答案控制中,用户可以通过单击此模板中的某个网格按钮来更改选项类型。所以我的问题是,如何编写.trigger()
以正确指向此模板中的网格按钮?如果您查看上面的代码,它会使用该按钮的ID,但是如果您查看模板下面的代码,它不包含一个ID,它只是将选项和控制功能从上面复制到模板中。
下面是模板:
function insertQuestion(form) {
var context = $('#optionAndAnswer');
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'>");
var $options = $("<div class='option'>Option Type:<br/></div>");
var $questionType = '';
$('.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();
});
$td.append($options);
$tbody.append($tr);
}
UPDATE:
我创建了一个URL这种应用here。请按照使用应用程序的步骤,然后你可以看到发生了什么:
- 第1步:当您打开应用程序时,你看到 页面上的绿色加号按钮,点击它,它会显示一个模态窗口。
- 第2步:在模态窗口中有一个搜索栏,输入“AAA”并提交搜索,你会看到一堆行出现。
- 步骤3:在第一行中,您看到“选项类型”AD下的 此行中的“添加”按钮,模式窗口将关闭,并且您在屏幕右侧的灰色文本框中看到“选项类型”文本框 等于4,它显示答案按钮A,B,C和D,这是 ,因为您记得该行的选项类型是“AD”。
现在这工作正常,但它仅适用于顶部的选项和答案控件,请按照下列步骤操作:
- 第4步:点击“添加问题”按钮,添加一行下方 包含选项和答案控制顶部的细节。
- 步骤5:在刚刚添加的行中,在左侧看到一个绿色加 按钮,单击此按钮并在搜索框中执行相同的搜索“AAA” 。
- 步骤6:这次通过点击“Add”按钮,选择最后一行,此行的“Option Type”为“AG”,所以它应该显示 “Answer”按钮A,B,C,D ,E,F和G,但它不这样做,它仍然 陈述“A,B,C,D”。
那么如何在选项和答案控制中的一个附加行中更改答案按钮的显示?
您在应用程序视图源中看到的addwindow()
函数是在单击“添加”按钮后发生的函数。 “添加”按钮,在一个包含PHP脚本,此按钮的代码如下,并用它都是你看到你已经在模态窗口执行搜索后列:
echo "<table border='1' id='resulttbl'>
<tr>
<th class='questionth'>Question</th>
<th class='optiontypeth'>Option Type</th>
<th class='noofanswersth'>Number of <br/> Answers</th>
<th class='answerth'>Answer</th>
<th class='noofrepliesth'>Number of <br/> Replies</th>
<th class='noofmarksth'>Number of <br/> Marks</th>
</tr>";
foreach ($searchResults as $key=>$question) {
echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>';
echo '<td class="optiontypetd">'.htmlspecialchars($searchOption[$key]).'</td>';
echo '<td class="noofanswerstd">'.htmlspecialchars($searchNoofAnswers[$key]).'</td>';
echo '<td class="answertd">'.htmlspecialchars($searchAnswer[$key]).'</td>';
echo '<td class="noofrepliestd">'.htmlspecialchars($searchReply[$key]).'</td>';
echo '<td class="noofmarkstd">'.htmlspecialchars($searchMarks[$key]).'</td>';
echo "<td class='addtd'><button type='button' class='add' onclick=\"parent.addwindow('$question','$searchMarks[$key]','$searchNoofAnswers[$key]','$searchOption[$key]','$searchReply[$key]','$searchAnswer[$key]');\">Add</button></td></tr>";
}
echo "</table>";
请显示呈现的HTML(如浏览器中的'view source'所示),PHP与客户端JavaScript完全无关。 – 2012-07-08 23:33:49
我已经改变了从PHP的HTML到查看源代码的问题 – user1490145 2012-07-08 23:47:05
你可以给一个jsFiddle的例子,它现在正在做什么? – Bill 2012-07-09 00:13:56