【发布时间】:2019-03-14 18:02:02
【问题描述】:
我有一个如下表格,如果输入文本和选择选项为空,我希望删除 tr 行。如果任何输入不为空,则显示表格行
你可以看到输入不是空的,它正在删除整行,可以检查两者都不为空然后删除
使用 Jquery
注意:表格行是动态添加的
$(function(){
$("table#my_form tr td").each(function(){
$(this).find('input, select').each(function(){
if($(this).val()==""){
$(this).closest('tr.table_row').remove();
}
})
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST" action="">
<table id="my_form">
<tr class="table_row">
<td>
<input type="text" name="company" value="TCS" />
</td>
<td>
<select name="favorites" id="favorites">
<option value="">Select Favorites</option>
<option value="chess">Chess</option>
<option value="caroms" selected>Caroms</option>
<option value="ruby">Ruby</option>
</select>
</td>
</tr>
<tr class="table_row">
<td>
<input type="text" name="company" value="Deloite" />
</td>
<td>
<select name="favorites" id="favorites">
<option value="">Select Favorites</option>
<option value="chess">Chess</option>
<option value="caroms">Caroms</option>
<option value="ruby">Ruby</option>
</select>
</td>
</tr>
<tr class="table_row">
<td>
<input type="text" name="company" value="GOOGLE" />
</td>
<td>
<select name="favorites" id="favorites">
<option value="">Select Favorites</option>
<option value="chess" selected>Chess</option>
<option value="caroms">Caroms</option>
<option value="ruby">Ruby</option>
</select>
</td>
</tr>
</table>
</form>
【问题讨论】:
-
很好奇,我不知道这里的完整上下文,所以这可能不适用。但是,为什么要专注于删除一行 - 如果 input 有效,为什么不只添加一行?
-
如果动态添加行,什么会触发删除行?您发布的代码只会在页面加载时运行一次。
-
输入改变时是否要删除该行?然后你应该将删除代码放入例如
$(this).find('input, select').change(...
标签: javascript jquery