- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在表的一列中附加一个 Select2 输入框。它在第一行工作正常,因为它在 HTML 中是静态的。然后,当我单击按钮追加另一行时,select2 将不会出现。
表格部分的html和js中的代码应该是相同的,但我不知道可能的原因是什么。
这是屏幕截图,忽略 UI 不一致的地方,我在该页面中仍然存在更多问题,但那是另一回事。
这是 fiddle ,https://jsfiddle.net/unmuk4km/2/
HTML
<table class="table table-hover" id="tab_owner">
<thead>
<tr>
<th class="text-center" colspan="4"><a
class="btn green add-owner pull-left"><i
class="fa fa-plus"></i>Add New Owner</a></th>
</tr>
<tr>
<th> Matrik No. </th>
<th> IC No.</th>
<th> Birth Place</th>
<th> Faculty</th>
<th> Study Year</th>
<th> Phone No.</th>
<th> Email</th>
<th> Year Start Business</th>
<th width="3%"></th>
</tr>
</thead>
<tbody>
<tr id="owner_0">
<td width='15%'><input name="matrik_number" type="text" class="form-control select2"></td>
<td width='10%'><input name="ic_0" type="text" class="form-control" readonly></td>
<td width='8%'><input name="bp_0" type="text" class="form-control" readonly></td>
<td width='5%'><input name="fac_0" type="text" class="form-control" readonly></td>
<td width='5%'><input name="syear_0" type="text" class="form-control" readonly></td>
<td width='8%'><input name="student_phoneno_0" type="text" class="form-control"></td>
<td width='10%'><input name="student_emailadd_0" type="text" class="form-control"></td>
<td width='3%'><select name="business_yearstart_0" class="form-control required">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
<td width='3%'><!-- placeholder for remove button --></td>
</tr>
</tbody>
</table>
</div>
</div>
JS
tab_owner.on('click', '.add-owner', function (e){
e.preventDefault();
var iRow = $('tbody tr:last',tab_owner).index() + 1;
var show_studentdata = $("<tr id='owner_"+ iRow +"' >\n" +
"<td width='15%'><input name='matrik_number_"+ iRow +"' type='text' class='form-control'></td>\n" +
"<td width='10%'><input name='ic_"+ iRow +"' class='form-control' readonly></td>\n" +
"<td width='8%'><input name='bp_"+ iRow +"' class='form-control' readonly></td>\n" +
"<td width='5%'><input name='fac_"+ iRow +"' class='form-control' readonly></td>\n" +
"<td width='5%'><input name='syear_"+ iRow +"' class='form-control' readonly></td>\n" +
"<td width='8%'><input name='student_phoneno_"+ iRow +"' class='form-control'></td>\n" +
"<td width='10%'><input name='student_emailadd_"+ iRow +"' class='form-control'></td>\n" +
"<td width='3%'><select name='business_yearstart_"+ iRow +"'></select></td>\n" +
"<td width='3%'><a class='btn btn-outline btn-circle btn-sm red del-owner pull-right'><i class='fa fa-remove'></i>Remove</a></td>" +
"</tr>\n");
//insert modal data to tables/forms
$('tbody',tab_owner).append(show_studentdata);
Metronic.scrollTo(show_studentdata, slideOffeset);
});
function loadStudentDetails(d){
$('[name^=ic_'+ iRow +']').val(d.smIcNo);
$('[name^=bp_'+ iRow +']').val(d.smBirthPlace);
$('[name^=fac_'+ iRow +']').val(d.smFacultyCode);
$('[name^=syear_'+ iRow +']').val(d.studyyear);
student_phoneno.val(d.smHandphoneNo);
student_emailadd.val(d.smEmailAddr);
}
matrik_number
.select2({
allowClear: true,
placeholder: "Filter as you type",
minimumInputLength: 3,
ajax: {
url: 'home/umkei/info/student',
dataType: 'json',
quietMillis: 250,
data: function (term, page) {
return { q: term };
},
results: function (data, page) {
return { results: data };
},
cache: true
}
})
.on("change", function(e) {
var id = matrik_number.val();
if(id != ''){
$.ajax({
url: 'home/umkei/info/student/'+id,
dataType: 'json',
beforeSend:function(){
showMetronicLoading(el,msgLoading);
},
error: function(){
Metronic.unblockUI(el);
showMetronicAlert('danger','warning',msgInternetError + '. Failed to load Student Info.');
},
success: function(res){
Metronic.unblockUI(el);
loadStudentDetails(res);
}
});
}
});
fiddle 无法工作,因为我以前从未使用过它,但我在日志中遇到了一些错误,但我不知道出了什么问题,所以我对此表示歉意。
但是您应该对我的代码的外观有所了解。我一直在到处改变和测试一些东西,所以如果有些代码看起来不一致,请原谅我,因为我在把它放在 fiddle 中时一定错过了它。
谢谢。
最佳答案
您需要在附加新的 select2 后对其进行初始化。
将 select2 初始化代码包装在一个函数中并使用开头名称
来调用它。
tab_owner.on('click', '.add-owner', function(e) {
e.preventDefault();
var iRow = $('tbody tr:last', tab_owner).index() + 1;
var show_studentdata = $("<tr id='owner_" + iRow + "' >\n" +
"<td width='15%'><input name='matrik_number_" + iRow + "' type='text' class='form-control'></td>\n" +
"<td width='10%'><input name='ic_" + iRow + "' class='form-control' readonly></td>\n" +
"<td width='8%'><input name='bp_" + iRow + "' class='form-control' readonly></td>\n" +
"<td width='5%'><input name='fac_" + iRow + "' class='form-control' readonly></td>\n" +
"<td width='5%'><input name='syear_" + iRow + "' class='form-control' readonly></td>\n" +
"<td width='8%'><input name='student_phoneno_" + iRow + "' class='form-control'></td>\n" +
"<td width='10%'><input name='student_emailadd_" + iRow + "' class='form-control'></td>\n" +
"<td width='3%'><select name='business_yearstart_" + iRow + "'></select></td>\n" +
"<td width='3%'><a class='btn btn-outline btn-circle btn-sm red del-owner pull-right'><i class='fa fa-remove'></i>Remove</a></td>" +
"</tr>\n");
//insert modal data to tables/forms
$('tbody', tab_owner).append(show_studentdata);
renderSelect2(); // call to render select2
Metronic.scrollTo(show_studentdata, slideOffeset);
});
function loadStudentDetails(d) {
$('[name^=ic_' + iRow + ']').val(d.smIcNo);
$('[name^=bp_' + iRow + ']').val(d.smBirthPlace);
$('[name^=fac_' + iRow + ']').val(d.smFacultyCode);
$('[name^=syear_' + iRow + ']').val(d.studyyear);
student_phoneno.val(d.smHandphoneNo);
student_emailadd.val(d.smEmailAddr);
}
function renderSelect2() {
$('[name^="matrik_number"]')
.select2({
allowClear: true,
placeholder: "Filter as you type",
minimumInputLength: 3,
ajax: {
url: 'home/umkei/info/student',
dataType: 'json',
quietMillis: 250,
data: function(term, page) {
return {
q: term
};
},
results: function(data, page) {
return {
results: data
};
},
cache: true
}
})
.on("change", function(e) {
var id = matrik_number.val();
if (id != '') {
$.ajax({
url: 'home/umkei/info/student/' + id,
dataType: 'json',
beforeSend: function() {
showMetronicLoading(el, msgLoading);
},
error: function() {
Metronic.unblockUI(el);
showMetronicAlert('danger', 'warning', msgInternetError + '. Failed to load Student Info.');
},
success: function(res) {
Metronic.unblockUI(el);
loadStudentDetails(res);
}
});
}
});
}
renderSelect2();
<强> FIDDLE
关于javascript - jQuery Select2 在表 TR 中追加后不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36054754/
我想要数组中所选 tr 的所有下一个 tr 的 data-id。我使用此代码,但这不是一个好代码。 var ids = Array.prototype.slice.call($("tr.selecte
JSFiddle:http://jsfiddle.net/9u8tnh97/ 我正在使用 jQuery 和 Bootstrap。我有一张 table 4 像这样的元素:
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
在 Notepad++ 中,我试图制作一个正则表达式来匹配标签。起初,我认为必须转义大括号,所以我尝试了 \ .然而,这不仅符合我预期的开始标签,而且匹配所有 。 s( 和 )。这是为什么? 最佳答
我正在尝试定位其中包含子表行元素的表中的最后一个父表行。我已尝试使用下面的 jQuery 来定位 :last 伪值,但是,如预期的那样,它的目标是目标父表中的绝对最后一个表行元素。 $('table[
我想插入新的在每个现有的 之后。我的功能: var element = document.querySelector('tr.cart-item'); var newElement = docume
这个问题在这里已经有了答案: RegEx match open tags except XHTML self-contained tags (35 个答案) 关闭 9 年前。 我希望这个正则表达式匹
生成此代码是为了做两件事。第一个是单击复选框时突出显示表记录。第二个是即使页面刷新也能记住结果。 Untitled Document
嗨,我正在尝试在 tr 数组中查找 tr属性名称是 docId 是否有任何类型的 jquery 选择器? 我不想只用 for 循环遍历数组然后自己去找。 除非你说我别无选择... 谢谢 最佳答案 如果
我有一张 table ,我想在单击加号图标时在 tr 中打开相同的 tr。我不明白我使用哪个 html 元素打开。 请帮帮我。提前致谢。
对你来说是个小问题:-) 我正在使用 BeautifulSoup 来解析 HTML 页面中表格的内容。问题是在我的输出文件的每一行(CSV/EXCEL)之间,它拉出一个空行......这是 HTML
我制作了一个包含基本信息的表格,每个奇数行和偶数行都有不同的颜色。在 :hover影响它是橙色的,不管它是偶数还是奇数。 但是当我想“分组”3 我发现了一个问题。我试着把它包装成 但它没有用。我的目标
在 lxml 中,我使用 xpath 选择表(具有不同行数)中的所有 tr,除了包含乱码的最后两行。 是否有排除最后两行的模式匹配?我正在浏览 xpath 教程,显然有一个“except”运算符和一个
我在表列表中显示来自数据库的记录。此外,我在每一行中都有一个跟进按钮,如果任何用户单击跟进按钮,则会为特定用户打开一个包含详细信息的弹出窗口。 或者任何其他想法来处理这个问题? 我试过用这样的东西
我有以下表格结构。 当我点击 时我想添加新的 在 旁边其中被点击。 所以结果会是:
使用这个 HTML: 1 2 3 4 我得到这个输出: 1 2 3 4 但我想要的是: 1 2 3 4 如何
嗨,我有一个表格,我在这里做了一些代码来将表格更改为可编辑和可选择...我的要求是 1.当点击一个TR时,它应该变成蓝色,再次点击另一个TR,它将显示蓝色,旧的TR变成白色(威胁不可选择) 我由于一些
这个问题可能令人困惑,但这就是确切的情况.. 我已经动态生成了一些(根据从数据库获取的数据),现在我想允许用户选择其中一个单选按钮,并且我想捕获所单击的行的详细信息,因此请检查我的代码并协助 我的aj
免责声明:HTML、JQuery、Ajax 技能水平 — 垃圾。一直是一个厚客户。 我有一个表单,允许用户输入客户代码和电子邮件地址。我想在客户代码有效时显示客户的姓名。我会错误地通过 Ajax 和
正在尝试添加 其他元素 表中的元素根据 的行跨度该特定元素 元素。在同一功能中,单击 中的此按钮后元素的行数每次增加1,因此也需要增加行数。不知道该怎么做。也许使用 slice()以某种方式发挥作
我是一名优秀的程序员,十分优秀!