我确定必须有一个简单的解释。我试图收到提醒,必须选择国家'只要选项“未选择”即可显示已选中(我相信默认选中),然后单击验证按钮。我已经能够正常显示警报功能,但问题是警报显示两次。
为什么警报会显示两次,如何让它只显示一次?谢谢!
function CountrySelectValidation() { // ensures country is selected
var ValidateCountry = document.forms["registration-form"]["Country"].value;
if (ValidateCountry == "not-selected") {
alert("Country must be selected");
return false;
} else {
return true;
}
}
function SubmitForm() {
if (CountrySelectValidation()) {
// check if true, then execute this code
document.getElementById("registration-form").submit();
}
}

<form id="registration-form">
What country are you from?
<select name="Country">
<option value="not-selected">Not Selected</option>
<option value="england">England</option>
<option value="wales">Wales</option>
<option value="scotland">Scotland</option>
<option value="northern-ireland">Northern Ireland</option>
</select>
<br><br><input type="submit" value="Submit Method 1">
<button type="reset">Reset Method 1</button>
<button type="submit" id="submit-2">Submit Method 2</button>
</form>
<button onClick="ResetForm()">Reset Method 1</button>
<button onClick="CountrySelectValidation(); SubmitForm()">Validation</button>
&#13;
答案 0 :(得分:3)
CountrySelectValidation()
...
if (CountrySelectValidation())
你在CountrySelectValidation
内运行if
函数(它实际执行),这就是它运行两次的原因。
答案 1 :(得分:1)
当您调用if语句时,您正在再次执行该函数。在原始函数内部调用的另一个函数中运行if语句中的代码。
OriginalFunction () {
//Content here
FunctionToHandleIfstatement();
}