javascript - javascript/jquery 表单的随机数

标签 javascript jquery

好的,所以我有以下表单域:

1. [] [] [] x
2. [] [] [] x
3. [] [] [] x
4. [] [] [] x

[兰德]

我允许用户通过单击“rand”向表单中插入随机数:

1. [01] [09] [12] x
2. [03] [12] [13] x
3. [12] [15] [16] x
4. [01] [02] [03] x

[兰德]

如果用户愿意,他们可以删除一行并添加一个新行

1. [01] [09] [12] x
3. [12] [15] [16] x
4. [01] [02] [03] x
5. [] [] []  x

[兰德]

每一行都由其字段命名:

1. [01] [09] [12] = name=row_name[1][0], row_name[1][0], row_name[1][0]
3. [12] [15] [16] = name=row_name[3][0], row_name[3][0], row_name[3][0]
4. [01] [02] [03] = name=row_name[4][0], row_name[4][0], row_name[4][0]
5. [] [] []       = name=row_name[5][0], row_name[5][0], row_name[5][0]

[兰德]

我面临的问题是,当用户删除多行时,序列现在乱序了,所以不是:1,2,3,4 我有:1,3,4,5

这意味着我的随机函数不会在第 5 行工作,因为它正在寻找 1,2,3,4(在 for 循环中)。

所以我的难题是如何最好地对此进行编码...

一方面,我正在考虑在每次用户删除一行时重新命名这些字段以保持它们的顺序:1,2,3,4

另一方面,我认为我可以忽略缺失的字段并改进我插入数字的方式。

rand 函数的工作原理如下:

var numbers_per_row = 3;
var total_numbers = 4;
var rows = getRandomNumbers(numbers_per_row,total_numbers);

This returns an array: [
   0 => [01,09,12],
   1 => [03,12,13],
   2 => [12,15,16],
   3 => [01,02,03]
]

现在我有了数组,接下来我需要将随机数插入到表单字段中:

var total_rows = rows.length();

for (var 1 = 0; i < total_rows; i++) {

    var line = row[i];
    for (var x =0; x < numbers_per_row; x++) {
        var field_name = 'row_name['+(i+1)+']['+x+'];
        $("#formName input[ name='" + field_main + "' ]").val(line[x]);
    }

}

不幸的是,这个函数没有考虑被删除的缺失值。

我一直在思考解决这个问题的最合乎逻辑的方法。有什么想法吗?

最佳答案

获取一个包含行号的数组,如果要删除该行,则删除该行号。插入新行时,将行号添加到数组中。

通过这种方式,可以使用行号遍历数组并保持工作系统。

关于javascript - javascript/jquery 表单的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238753/

相关文章:

javascript - 按字符串对对象元素进行排序,其中每个字符串都是一个数组

javascript - 如何在 javascript 中设置背景图片,我的代码不起作用,任何人都可以帮助我吗?

javascript - 更改另一个页面上的 div 的内容

javascript - 无法在 Django 中加载引导导航栏(可能是显而易见的解决方案)

php - 如何在不使用iframe的情况下在我们的网站中显示其他网站的内容?

javascript - Cckeditor 在初始化期间删除 html5 视频 block

php - 完整的 AJAX 反馈

javascript - 如何从 javascript 调用内置的 parsley 验证器?

javascript - jQuery:向 src 属性添加/删除文本字符串

javascript - JW Player 6 控制栏