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