而通过javascript添加行添加下拉列表不起作用
while adding dropdown list through javascript add row is not working
我正在通过jquery向html添加行。当我在jquery中添加了"下拉列表"时,添加行停止工作。它非常适合输入类型"text"。有人能建议:http://jsfiddle.net/znFmc/12/
HTML
<body>
<div id="page_container">
<div class="form_container">
<h3>Add and Delete rows dynamically with textboxes using jQuery:</h3>
<table id="expense_table" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>Sl. No</th>
<th>Mode</th>
<th> </th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="reg_no_01" maxlength="10" required /></td>
<td>
<select name="mode" maxlength="10" required />
<option value="Select"selected>Select</option>
<option value="Auto">Auto</option>
<option value="Car">Car</option>
</td>
<td> </td>
</tr>
</tbody>
</table>
<input type="button" value="Add Row" id="add_ExpenseRow" />
</div> <!-- END subject_marks -->
<div class="clearfix"></div>
</div>
<!-- FOOTER -->
<a class="mm" href="http://mediamilan.com/" title="Go to Media Milan.com" target="_blank"></a>
</body>
jQuery
$(function(){
// GET ID OF last row and increment it by one
var $lastChar =1, $newRow;
$get_lastID = function(){
var $id = $('#expense_table tr:last-child td:first-child input').attr("name");
$lastChar = parseInt($id.substr($id.length - 2), 10);
console.log('GET id: ' + $lastChar + ' | $id :'+$id);
$lastChar = $lastChar + 1;
$newRow = "<tr> '
<td><input type='text' name='reg_no_0"+$lastChar+"' maxlength='10' /></td> '
<td><select name='subjects_0"+$lastChar+"' maxlength='10' /><option value="Select"selected>Select</option><option value="Auto">Auto</option> <option value="Car">Car</option></td> '
<td><input type='button' value='Delete' class='del_ExpenseRow' /></td> '
</tr>"
return $newRow;
}
// ***** -- START ADDING NEW ROWS
$('#add_ExpenseRow').on("click", function(){
if($lastChar <= 9){
$get_lastID();
$('#expense_table tbody').append($newRow);
} else {
alert("Reached Maximum Rows!");
};
});
$(".del_ExpenseRow").on("click", function(){
$(this).closest('tr').remove();
$lastChar = $lastChar-2;
});
});
此处的字符串格式不正确:
$newRow = "<tr> '
<td><input type='text' name='reg_no_0"+$lastChar+"' maxlength='10' /></td> '
<td>
<select name='subjects_0"+$lastChar+"' maxlength='10' /> '
<option value="Select"selected>Select</option> '
<option value="Auto">Auto</option> '
<option value="Car">Car</option></td> '
<td><input type='button' value='Delete' class='del_ExpenseRow' /></td> '
</tr>"
替换为:
$newRow = "<tr> '
<td><input type='text' name='reg_no_0"+$lastChar+"' maxlength='10' /></td> '
<td>
<select name='subjects_0"+$lastChar+"' maxlength='10' /> '
<option value='Select' selected>Select</option> '
<option value='Auto'>Auto</option> '
<option value='Car'>Car</option></td> '
<td><input type='button' value='Delete' class='del_ExpenseRow' /></td> '
</tr>"
如果你打开浏览器的控制台,你会看到一个Uncaught SyntaxError: Unexpected identifier
错误,通知你这个问题,并指向那一行。
此外,正如A.Wolff建议的那样,替换:
$(".del_ExpenseRow").on("click", function(){
带有:
$(document).on("click", ".del_ExpenseRow", function(){
这样可以确保在页面加载后添加的元素具有所需的事件处理程序
(有关委派事件的更多信息,请参阅jQueryapi)
相关文章:
- jQuery表单添加不适用于下拉列表
- 在play2框架中向json对象添加下拉列表项
- 如何为下拉列表的每个选项添加一个属性
- webforms:在javascript中动态添加下拉列表选项
- 使用jquery在产品选择器中添加下拉列表检查
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 可以't使用Javascript添加下拉列表yii
- 如何在 ajax 中添加下拉列表的选项
- 使用JavaScript / jQuery向价格计算器添加下拉列表选项
- 在具有动态内容 mvc3 的部分视图中添加下拉列表
- 如何动态添加下拉列表
- 如何在剑道UI网格中添加下拉列表
- 如何选择动态添加下拉列表的默认选项
- 添加下拉列表和复选框值
- Twitter Bootstrap 动态添加下拉列表
- 动态添加下拉列表
- 如何在表中添加下拉列表?
- 添加下拉列表,自定义sharepoint功能区选项卡通过javascript
- 用户可以通过在文本框中键入选项来添加下拉列表
- 而通过javascript添加行添加下拉列表不起作用