如何确定与console.log不同的输入值?

时间:2019-04-21 21:20:48

标签: javascript jquery input uuid

使用console.log时,它将生成 3 个不同的值(这是我想要的),但是当将变量传递给input val时,它只会生成一个。

我需要使函数生成的3(三)个代码不仅出现在console.log中,而且还会出现在输入值中……

function uniqueID() {
  function chr4() {
    return (Math.random().toString(16).slice(-4)).toUpperCase();
  }
  return chr4() + chr4() + '-' + chr4() + '-' + chr4() + '-' + chr4() + '-' + chr4() + chr4() + chr4();
}
for (i = 1; i <= 3; i++) {
  var id_unique = uniqueID();
  console.log(id_unique);
}
$("#input_test").val(id_unique);

2 个答案:

答案 0 :(得分:0)

因此,如@demo所述,您登录到循环内部。这就是为什么您看到所有3个值的原因。因此,每个循环上的id_unique被重新分配,因此最终循环上的val()仅等于最后一个值。底部提供的解决方案将当前值压入一个数组,然后您可以在function uniqueID() { function chr4() { return Math.random() .toString(16) .slice(-4) .toUpperCase(); } return ( chr4() + chr4() + '-' + chr4() + '-' + chr4() + '-' + chr4() + '-' + chr4() + chr4() + chr4() ); } var ids = []; for (i = 1; i <= 3; i++) { var id_unique = uniqueID(); ids.push(id_unique); } console.log(ids); $('#input_test').val(ids); 中使用该数组。

尝试一下,看看它能否成功

Student

答案 1 :(得分:0)

在for循环中,您必须将每个生成的值保存在不同的变量中,您的代码现在在每次迭代中更改(id_unique)的值,然后打印最后生成的值。