我使用javascript遞歸循環填充表單域並通過它們提示用戶。JavaScript中的遞歸循環,基於鏈接點擊增量
我遇到了遞歸問題,無法按預期工作。
我有一個遞歸循環,提示用戶通過6個輸入字段。
field1和field2按預期方式填充,但field3和field4一起觸發,field5和field6一起觸發。
我認爲它與全局變量或局部變量有關,或者可能在loop()函數內作用域,但我正在努力解決它。
的jsfiddle:http://jsfiddle.net/9QtDw/5/
單擊「保存數據」按鈕,關火環,你可以看到環路()函數迭代與確認彈出窗口引導用戶。
任何幫助指向我在正確的方向非常感謝。
var x = 0;
var fieldnames = ["field1", "field2", "field3", "field4", "field5", "field6"]
function loop(y) {
i = y;
if (i >= fieldnames.length) { // check to see if loop has run through the number of elements in the fieldnames array
return;
}
confirm('Highlight the ' + fieldnames[i] + ' text');
console.log("outside on click function i=" + i);
//function to be called when button is clicked
$("#text-submit").on("click", function(){
//fieldinfo = $("#cs-ResultText").text();
$('#' + fieldnames[i] + '').val('this is where i = ' + i);
// increment i and recall the loop function for the next field
if(i >= fieldnames.length - 1){ return false; }
i=i+1;
console.log(i);
console.log("inside on click function i=" + i);
return loop(i); // the recusive call back into the loop
});
return false;
}
// only fire off the loop call on the first run through, after that it's called on #text-submit click
if(x === 0){
loop(x);
}
謝謝!這有很大幫助。看起來你剛剛添加了e.preventDefault();在點擊功能上。 – lawlessmedia
我只是調整了填充字段值的位置,用戶需要選擇數據,然後單擊鏈接填充字段。 http://jsfiddle.net/9QtDw/7/ 我感謝您的幫助。 – lawlessmedia