Javascript 函数 onclick 中的随机数
Javascript random number in function onclick
需要一些帮助。与下面 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--;
}
});
});
您只在页面加载时生成随机数是正确的,因为您在页面加载时就定义了 t。你需要做的是在点击函数中生成数字,这样
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++;
});
需要一些帮助。与下面 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--;
}
});
});
您只在页面加载时生成随机数是正确的,因为您在页面加载时就定义了 t。你需要做的是在点击函数中生成数字,这样
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++;
});