需要一些帮助。用下面的javascript。在插入一行时,我需要随机数t来在每次点击(插入)时生成一个新数字。我必须将每一行作为数组发送到处理器,因此每个插入时需要一个唯一的数字。我可以让它第一次工作,但当然它只是在负载而不是每次点击产生。经过几个小时试图弄明白......但没有骰子。
任何帮助?
<script type="text/javascript">
$(document).ready(function(){
var i=1;
var t = Math.floor(Math.random() * 256);
$("#add_row").click(function(){
$('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>");
$('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
});
答案 0 :(得分:1)
你是正确的,你只是在页面加载时生成随机数,因为你在页面加载时正确定义。你需要做的是在click函数中生成数字,这样
var t = Math.floor(Math.random() * 256);
每次单击时都会调用,而不是在文档准备就绪时调用一次。
所以而不是
$("#add_row").click(function(){
$('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>");
$('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
});
你会得到: $("#add_row").click(function(){
var t = Math.floor(Math.random() * 256);
$('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>");
$('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
});