如何将文本框追加到复选框列表项,该复选框列表项来自选择列表项的 SharePoint 列表
how to append a textbox to a checkbox list item which is coming from a sharepoint list on select of a list item
我有一个自定义输入表单,其中一些字段来自 SharePoint 2010 中的列表。我有一个由列表项填充的复选框控件。大约有 10 行。
现在,我希望当用户选择复选框列表项时,它旁边应该会出现一个文本框。 例如,我有一个名为主题的列表,它有列名标题,条目是物理、数学、化学等......现在,当用户从复选框列表中选择物理时,旁边应该会出现一个文本框,用户应该能够在文本框上书写。
protected void chkbox1_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (ListItem checkbox in chkbox1.Items)
{
//If this particular item is checked
if (checkbox.selected)
{
checkbox.Text = String.Format("{0}<input id='"TextBox{0}'" name='"TextBox{0}'" / >", checkbox.Value);
//TextBox tb = new TextBox { ID = checkbox.Value };
//Input.Controls.Add(tb);
}
}
}
我根据
你的描述做了一些猜测。您可以通过JQuery执行此操作: https://jsfiddle.net/Twisty/pw0vrvfh/
.HTML
<form>
<ul>
<li>
<input type="checkbox" id="chk-01" />
<label for="chk-01">Physics</label>
</li>
<li>
<input type="checkbox" id="chk-02" />
<label for="chk-02">Math</label>
</li>
<li>
<input type="checkbox" id="chk-03" />
<label for="chk-03">Chemistry</label>
</li>
<li>
<input type="checkbox" id="chk-04" />
<label for="chk-04">Label 4</label>
</li>
<li>
<input type="checkbox" id="chk-05" />
<label for="chk-05">Label 5</label>
</li>
<li>
<input type="checkbox" id="chk-06" />
<label for="chk-06">Label 6</label>
</li>
<li>
<input type="checkbox" id="chk-07" />
<label for="chk-07">Label 7</label>
</li>
<li>
<input type="checkbox" id="chk-08" />
<label for="chk-08">Label 8</label>
</li>
<li>
<input type="checkbox" id="chk-09" />
<label for="chk-09">Label 9</label>
</li>
<li>
<input type="checkbox" id="chk-10" />
<label for="chk-10">Label 10</label>
</li>
</ul>
</form>
杰奎里
$(document).ready(function() {
$("input[id^='chk-']").change(function() {
if ($(this).is(":checked")) {
var chkId = $(this).attr("id");
var inpId = chkId.substring(chkId.indexOf("-") + 1);
var $inp = $("<input />", {
type: "text",
name: "TextBox" + inpId,
id: "TextBox" + inpId
});
$(this).next("label").after($inp);
} else {
var chkId = $(this).attr("id");
var inpId = chkId.substring(chkId.indexOf("-") + 1)
$("#TextBox"+inpId).remove();
}
});
});
为了保持一致性,将使用当前checkbox
的 ID 创建新的input
。您可以轻松地将 ID 更改为 value
甚至数组:如果您愿意,可以更改TextBox[]
。
我绑定到.change()
事件,以便每次都可以检查checkbox
的状态。这允许用户改变主意。您还可以在删除文本之前从input
中收集文本。将其放入.data()
以防用户取消选中错误的。如果有该复选框的数据,您可以在下次选中时替换它。示例:https://jsfiddle.net/Twisty/pw0vrvfh/2/
相关文章:
- 如何保持引导程序下拉复选框列表下拉
- (取消)使用单独的复选框激活复选框列表
- 基于所选下拉列表值创建动态复选框
- 从下拉列表中获取选定的复选框
- 选中复选框时如何显示/隐藏下拉列表
- 复选框列表在Knockout JS中不起作用
- 在本地存储中选中复选框,但在加载时也要筛选列表
- 如何创建至少 1 个框处于活动状态的复选框列表
- 如何将从谷歌自定义搜索API获取的数据放入复选框列表
- 检查多个复选框列表与单击一个按钮
- 选中基于下拉列表的复选框
- 使用 JQuery 复选框筛选项目列表
- Angular 2:用HTTP响应填充复选框列表
- 使用复选框列表中的jquery附加文本
- 如何将复选框转换为下拉列表
- 根据MVC列表框和复选框的值更改标记元素
- 如何部分隐藏asp.net复选框列表项
- 待办事项列表复选框编号逻辑
- 在jquery中未激发列表复选框更改事件
- Javascript /jquery-如何确定列表/复选框是否允许选择多个值