0

我正在使用这个脚本,因为我需要关注每个警报。我尝试了很多方法,但它不起作用。

脚本:

function validateTime(obj) {
    var timeValue = obj.value;
    if(timeValue == "" || timeValue.indexOf(":") < 0) {
        alert("Invalid Time format");
        obj.value = "";
        return false;
    } else {
        var sHours = timeValue.split(':')[0];
        var sMinutes = timeValue.split(':')[1];
        if(sHours == "" || isNaN(sHours) || parseInt(sHours) > 23) {
            alert("Invalid Time format");
            obj.value = "";

            return false;
        } else if(parseInt(sHours) == 0) sHours = "00";
        else if(sHours < 10) sHours = "0" + sHours;
        if(sMinutes == "" || isNaN(sMinutes) || parseInt(sMinutes) > 59) {
            alert("Invalid Time format");
            return false;
        } else if(parseInt(sMinutes) == 0) sMinutes = "00";
        else if(sMinutes < 10) sMinutes = "0" + sMinutes;
        obj.value = sHours + ":" + sMinutes;
    }
    return true;
}

aspx:

 <asp:TextBox ID="lblMonday" CssClass="lblMonday" runat="server" Width="55px" onchange="validateTime(this);"></asp:TextBox>
4

2 回答 2

0

您只需要obj.focus()在每次警报后拨打电话即可。如:

alert("Invalid Time format");
obj.value = "";
obj.focus();
于 2013-04-29T03:57:56.863 回答
0

您可能没有在文本元素上调用 focus() 方法。此外,混合演示和功能也不是一个好习惯。不得在 HTML 标记中使用 onchange 属性。

document.getElementById("lblMonday").onchange = function() {
    if(!validateTime(this)) { this.focus(); }
}

您可以通过调用 alert() 并在一个地方重置字段的值来删除大部分重复项,如

document.getElementById("lblMonday").onchange = function() {
        if(!validateTime(this)) { 
            this.focus();
            this.value="";
            alert("Invalid time format"); 
        }
        else {
            //Do something else
        }
}
于 2013-04-29T04:10:28.807 回答