Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取现有的输入值,将其随机分配并放回原处_Javascript_Jquery - Fatal编程技术网

Javascript 如何获取现有的输入值,将其随机分配并放回原处

Javascript 如何获取现有的输入值,将其随机分配并放回原处,javascript,jquery,Javascript,Jquery,我有两个按钮,一个用于重置输入字段,另一个用于随机值。我有以下javascript代码将输入字段重置为空白,它工作正常 $(".reset").click(function() { $(this).closest('form').find("input[type=text], textarea").val(""); }); 现在,我想从输入字段中获取所有值,对它们进行随机处理,然后将其放回原处。每次点击,数字都会不同 下面是输入字段的HTML <i

我有两个按钮,一个用于重置输入字段,另一个用于随机值。我有以下javascript代码将输入字段重置为空白,它工作正常

    $(".reset").click(function() {
        $(this).closest('form').find("input[type=text], textarea").val("");
    });
现在,我想从输入字段中获取所有值,对它们进行随机处理,然后将其放回原处。每次点击,数字都会不同

下面是输入字段的HTML

    <input type="text" name="seed[]" value="1" id="name" class="form-control">
    <input type="text" name="seed[]" value="2" id="name" class="form-control">
    <input type="text" name="seed[]" value="3" id="name" class="form-control">
    <input type="text" name="seed[]" value="4" id="name" class="form-control">


像这样的怎么样

函数洗牌(a){
对于(设i=a.length-1;i>0;i--){
常数j=数学楼层(数学随机()*(i+1));
[a[i],a[j]=[a[j],a[i]];
}
返回a;
}
$(“.random”)。单击(函数(){
设vals=$(“输入[name='seed[]',textarea”).map(函数(){return$(this.val();}).get();
VAL=随机播放(VAL);
$.each($($输入[name='seed[]',textarea])函数(i,val){
$(此).val(val[i]);
})
控制台日志(VAL)
});


随机的
像这样的怎么样

函数洗牌(a){
对于(设i=a.length-1;i>0;i--){
常数j=数学楼层(数学随机()*(i+1));
[a[i],a[j]=[a[j],a[i]];
}
返回a;
}
$(“.random”)。单击(函数(){
设vals=$(“输入[name='seed[]',textarea”).map(函数(){return$(this.val();}).get();
VAL=随机播放(VAL);
$.each($($输入[name='seed[]',textarea])函数(i,val){
$(此).val(val[i]);
})
控制台日志(VAL)
});


random
首先,输入元素的ID应该是唯一的

<input type="text" name="seed[]" value="1" id="nameA" class="form-control">
<input type="text" name="seed[]" value="2" id="nameB" class="form-control">
<input type="text" name="seed[]" value="3" id="nameC" class="form-control">
<input type="text" name="seed[]" value="4" id="nameD" class="form-control">

首先,输入元素的ID应该是唯一的

<input type="text" name="seed[]" value="1" id="nameA" class="form-control">
<input type="text" name="seed[]" value="2" id="nameB" class="form-control">
<input type="text" name="seed[]" value="3" id="nameC" class="form-control">
<input type="text" name="seed[]" value="4" id="nameD" class="form-control">

Math.random()
[0,1]范围内生成一个随机浮点数
Math.floor(Math.random()*n)
将为您提供范围
[0,n-1]内的整数
。使用此选项来洗牌值。通常,要完全随机化
n
值,只需迭代每个值
i
,并使用取自
[i,n]
的随机值进行交换:

let sorted=[1,2,3,4,5];
让洗牌=[…排序];
for(设i=0;i
Math.random()
[0,1]范围内生成一个随机浮点值
数学地板(Math.random()*n)
将为您提供一个范围
[0,n-1]内的整数
。使用此选项来洗牌值。通常,要完全随机化
n
值,只需迭代每个值
i
,并使用取自
[i,n]
的随机值进行交换:

let sorted=[1,2,3,4,5];
让洗牌=[…排序];
for(设i=0;iconsole.log(无序);
尝试使用一行程序:

$.each($("input[type='text']").map((index, element) => $(element).val()).get().sort(() => Math.random() - 0.5), (i, value) => { $("input[type='text']").eq(i).val(value); });
下面是一个片段:

$(“.click”)。单击(()=>{
$.each($($(“输入[type='text'])).map((索引,元素)=>$(元素).val()).get().sort(()=>Math.random()-0.5),(i,value)=>{$(“输入[type='text'])。eq(i).val(值);});
返回false;
});

尝试使用一行程序:

$.each($("input[type='text']").map((index, element) => $(element).val()).get().sort(() => Math.random() - 0.5), (i, value) => { $("input[type='text']").eq(i).val(value); });
下面是一个片段:

$(“.click”)。单击(()=>{
$.each($($(“输入[type='text'])).map((索引,元素)=>$(元素).val()).get().sort(()=>Math.random()-0.5),(i,value)=>{$(“输入[type='text'])。eq(i).val(值);});
返回false;
});

这一步可以简单地使用普通javascript完成。 我已经创建了一个示例plunker

这一步只需使用普通javascript即可完成。 我已经创建了一个示例plunker

然后使用
Math.random()
获取一个随机浮点值0-1,并使用它为输入生成一个值。不能重复使用相同的ID,ID是唯一的。打开浏览器控制台,键入
Math.floor(Math.random()*100)
看看你得到了什么,然后进行实验!@MusaButt你自己尝试过解决这个问题吗?然后使用
Math.random()
获得一个随机浮点值0-1,并使用它为输入生成一个值。你不能重复使用相同的ID,ID应该是唯一的。打开浏览器控制台,键入
Math.floor(Math.random()*100)
看看你得到了什么,然后进行实验!@MusaButt你自己尝试过解决这个问题吗?有时它会将输入字段留空。我希望每次单击时填写所有输入。你应该检查选择器(即
输入[type='text']
)与您想要的完全匹配。我猜它正在填充页面上的其他输入。这是不准确的。
array.sort(()=>Math.random()-.5)
可能很简洁,但它不是完全随机的。例如,给定
array=[1,2,3]
,洗牌后37%的结果将是
[1,2,3]
,而只有6%的答案是
[1,3,2]
!@junvar是的,你是对的,我知道,我的目标是这里的一行。我会更新答案,使其清晰,有时它会将输入字段留空。我希望每次单击时填写所有输入。你应该检查选择器(即
输入[type='text']
)与您想要的完全匹配。我猜它正在填充页面上的其他输入。这是不准确的。
array.sort(()=>Math.random()-.5)
可能很简洁,但它不是完全随机的。例如,给定
array=[1,2,3]
,洗牌后37%的结果将是
[1,2,3]
,而只有6%的人将成为
[1,3,2]
!@junvar是的,你是对的,我知道,我的目标是这里的一行。我会更新答案以澄清