如何在 JavaScript 中使用带有 setTimeout 的条件?



如果两个文本框没有填充文本,我正在尝试在 3 秒后刷新页面。

我将其设置为按钮,无需条件即可正常工作。

function refresh() {
var txt1 = document.getElementById("txtAccountNumber");
var txt2 = document.getElementById("txtStaffNumber");
if (txt1.value == "" && txt2.value == "") {
setTimeout(function() {
location.reload();
}, 3000);
}
}

您可以将条件包装在超时内以执行此操作。

<script>
function refresh() {
var txt1 = document.getElementById("txtAccountNumber");
var txt2 = document.getElementById("txtStaffNumber");    
setTimeout(function () {
if (txt1.value == "" && txt2.value == "")
{
location.reload();
}
}, 3000);
}
</script>

在脚本中使用此代码。

setTimeout(function(){ validation(); }, 3000);
var flag = 0;
function validation(){
var txt1 = document.getElementById("txtAccountNumber").value;
var txt2 = document.getElementById("txtStaffNumber").value;

if(flag != 0){
setTimeout(function(){
if(txt1 == '' && txt2 == ''){
location.reload();
}
else{
validation();
}
}, 3000);
}
else{
	flag = 1;
	if(txt1 == '' && txt2 == ''){
location.reload();
}
else{
validation();
}
}
}
<form>
<input type="text" id="txtAccountNumber">
<input type="text" id="txtStaffNumber">
</form>

感谢您的帮助,事实证明我在asp:TextBox中使用了ID,这很奇怪。我必须添加 ClientIDMode = "静态",以便函数可以获取 ID。 现在工作。

最新更新