我想清理這個有代表性的代碼,我決定將這些方法分離爲單獨的功能對象,然後在單個驗證函數中調用它們。代碼在第一個函數上正確運行並正確返回警告框。但是,當我修復第一個警報並重新提交表單時,第二個函數會向我發出警報以解決某些問題,然後單擊確定並立即獲得第三個函數的警報。很明顯,我需要輸入一些代碼來停止程序運行後,我點擊好的第二個功能警報,以便我可以解決這個問題,但是如何?Javascript:在函數內調用函數的問題
var checkboxes = document.getElementsByName('days');
var valid = false;
function textFieldValid(){
var textFieldsReq = document.getElementsByName('textFieldReq');
for(var i=0;i<9;i++){
if (!textFieldsReq[i].value){
alert ('You need to fill in the required* text field!');
textFieldsReq[i].focus();
return false;
}
}
};
function checkboxesValid(){
for (var i = 0;i<checkboxes.length;i++){
if (checkboxes[i].checked) {
valid = true;
break;
}
}
if (!valid) {
alert('You need to select at least one day!');
checkboxes[0].focus();
return false;
}
}
function lodgeValid(){
var lodging = document.getElementsByName('lodge');
for(var i=0; i<lodging.length; i++){
if(lodging[i].checked){
valid=true;
break;
}
}
if (!valid) {
alert('You need to select at least one option!');
lodging[0].focus();
return false;
}
}
function validate(textFieldsReq){
textFieldValid();
checkboxesValid();
lodgeValid();
};
不在一起validate方法使用所有這三種使用單一的方法中,並通過真假分別給他們打電話 – cracker