Javascript 项目编号为';t从输入更改函数内的数组中删除
下面是我的HTML代码Javascript 项目编号为';t从输入更改函数内的数组中删除,javascript,jquery,Javascript,Jquery,下面是我的HTML代码 + 这里是Jquery $(document).ready(function() { var inputs = $('.createCaseImgInput'); var $availableInputs = [0, 1, 2, 3]; var randomAvailableInputs = $availableInputs[Math.floor(Math.random()*$availableInputs.length)]; $(
+
这里是Jquery
$(document).ready(function() {
var inputs = $('.createCaseImgInput');
var $availableInputs = [0, 1, 2, 3];
var randomAvailableInputs = $availableInputs[Math.floor(Math.random()*$availableInputs.length)];
$(document).on('click', '#createCaseImgUploadBtn', function() {
$("#"+randomAvailableInputs).trigger('click');
});
inputs.on('change', function() {
triggeredInputNumber = $(this).attr('id');
removeInputNumber = parseInt(triggeredInputNumber);
$availableInputs = $availableInputs.splice($availableInputs.indexOf(removeInputNumber), 1);
console.log(removeInputNumber );
console.log($availableInputs);
});
});
我已经为可用输入字段创建了一个与ID链接的数字列表,在单击createCaseImgUploadBtn后,它会触发列表中的任何随机输入,在选择了我想从可用输入中删除该数字的文件后,但它不起作用。基本上,整个要点是,我不希望它在选择文件后再次触发相同的文件输入字段。问题在于您使用splice重新指定。我不需要那个。只需使用拼接。拼接更改数组的内容 其次,初始化
document.ready
上的randomAvailableInputs
值。每次单击按钮时,该值将保持不变
单击按钮时,您需要为randomAvailableInputs
指定一个值,以便该值根据$availableInputs
数组进行更改
检查下面
$(文档).ready(函数(){
变量输入=$('.createCaseImgInput');
var$availableInputs=[0,1,2,3];
$(文档)。在('click','createCaseImgUploadBtn',函数()上{
//把这个搬过来
var randomAvailableInputs=$availableInputs[Math.floor(Math.random()*$availableInputs.length)];
$(“#”+随机可用输入)。触发器('click');
});
inputs.on('change',function(){
triggeredInputNumber=$(this.attr('id');
removeInputNumber=parseInt(triggeredInputNumber);
$availableInputs.splice($availableInputs.indexOf(removeInputNumber),1);
console.log(removeInputNumber);
console.log($availableInputs);
});
});代码>
点击我
$availableInputs=$availableInputs.splice($availableInputs.indexOf(removeInputNumber))1)代码>您不需要重新分配$availableInputs
-。splice
执行就地删除。当您重新分配变量时,下次尝试使用它时,您将得到splice
的结果,这是一个包含已删除项的数组。@VLAZ仍然不工作,它只是触发并覆盖相同的文件输入,现在又开始工作了,哈哈,真的没有注意到!非常感谢你。您总是在该randomavableInputs
上获得相同的值,因为它在document.ready
上被赋予了一个值,并且此后从未更改。这就是为什么您需要在单击时动态地给它一个值。很高兴我能帮上忙。这是一个简单的代码。您应该使用var
(或const/let)声明变量<代码>触发输入编号
和删除输入编号
。在这里检查。并且在命名变量时保持一致性(前面有/没有$
)。单击功能而不是文档
,您可以使用此
,因为它将直接在document.ready功能中引用文档。但是您可以将单击功能更改为直接应用于按钮$(按钮)。在('click',function(){}
或$(按钮)。单击