我试图制作 jquery-ui 进度条,它显示在表单中填写输入的进度。我的代码如下:
html:
<div id="progress" class="progress"></div>
//form and inputs
脚本:
$(document).ready(function(){
var elementcount = document.getElementById("events").length;
var totallength = 100;
var relativelength = totallength/elementcount;
var initial = 0;
$('#progress').progressbar({
value: initial,
});
$('#events').find(':input').each(function(){
$(this).change(function(){
if($(this).val()==""){
var value = initial - relativelength;
$('#progress').progressbar("value",value);
initial = value;
}
else{
var value = initial + relativelength;
$('#progress').progressbar("value",value);
initial = value;
}
});
});
});
在上面的代码中,我首先计算了没有。表单中的元素并设置相对长度(每个填充输入要增加的长度)。进度条随着输入值的变化而增加。如果输入值被清空(即空白),则减少。
这很好用,但问题是它每次都会检测到输入变化的变化。因此,如果我填写输入并第二次填写,那么进度条会再次增加。
是否有任何解决方案可以让我检测到输入的第一次更改并在更改后停止进度条?