当我使用jQuery在下拉列表中选择任何数字时,我无法在id为myTable2的表中添加行。我想在此表中添加tr。
我的代码是:
<script src="js/jquery.min.js" type="text/javascript">
</script>
<script>
function AddRow(id)
{
alert(id)
for(var i=0;i<id-1;i++)
{
var text_box = "<tr><td><input type='text' name='dest[]' value='' size='30' />
</td> <td><input type='text' name='destsub[]' value='' size='35' />
</td></tr>";
$('#myTable2').append(text_box)
}
}
</script>
DESTINATION COVERED
<select name="covered" id="covered" onchange="AddRow(this.value)">
<?php
for($i=1;$i<=100;$i++)
{
?>
<option value="<?php echo $i; ?>" ><?php echo $i; ?></option>
<?php
}
?>
</select>
<table id="myTable2" width="587" border="0">
</table>
有人帮帮我吗?
答案 0 :(得分:0)
http://jsfiddle.net/uXvJJ/你可以在这里看到它有效:
应该由你的php生成的HTML:
<table id="myTable2" width="587" border="0">
<tr>
<td height="23"><strong>DESTINATION COVERED</strong></td>
<td height="23">
<select name="covered" id="covered" onchange="AddRow(this.value)">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>
</td>
</tr>
</table>
使用Javascript:
function AddRow(id)
{
alert(id)
for(var i=0;i<id-1;i++)
{
var text_box = "<tr><td><input type='text' name='dest[]' value='' size='30' /></td><td><input type='text' name='destsub[]' value='' size='35' /></td></tr>";
$('#myTable2').append(text_box)
}
}
由于for循环中的i < id-1
,它仅在值为2或更大时添加行。只有当您将值2或更多值作为参数传递时,它才会添加行。
我在这里添加了您更新的Html,它也有效:http://jsfiddle.net/uXvJJ/2/
HTML:
<select name="covered" id="covered" onchange="AddRow(this.value)">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>
<table id="myTable2" width="587" border="0">
</table>
添加了另一个选项并演示了针对for循环的修复
function AddRow(id)
{
alert(id)
for(var i=0;i<id;i++)
{
var text_box = "<tr><td><input type='text' name='dest[]' value='' size='30' /></td><td><input type='text' name='destsub[]' value='' size='35' /></td></tr>";
$('#myTable2').append(text_box)
}
}
答案 1 :(得分:0)
您的AddRow
函数没有附加行,它会附加一个空文本注释。这是一个工作小提琴,可以满足你的需要http://jsfiddle.net/sfarsaci/w3kj6/