javascript - 如何在页面加载后停止按钮文本更改?

标签 javascript asp.net

我有一个两个文本框和启用按钮。如果在单击启用按钮时在文本框中输入的数据错误,它会发出警报。如果所有数据都正确,则单击启用按钮时,文本必须变为禁用。问题是,一旦我单击启用,它就会禁用一秒钟,然后页面加载它再次进入启用。任何人都可以告诉我我做错了什么。如果可能,请提供一个示例。提前致谢

用于验证和更改按钮文本的脚本

function validate
 {
var cal1 = document.getElementById('<%=txtEndDate.ClientId%>').value;
  var cal2 = document.getElementById('<%=txtStartDate.ClientId%>').value;
     var button=document.getElementById('<%=button1.ClientId %>')
      if (cal1 == '' && cal2 == '') {
            alert("Start Date and End Date can not be left blank ");
            return false;
        }
        if (cal1 == '') {
            alert("End Date can not be left blank ");
            return false;
        }
        if (cal2 == '') {
            alert("Start Date can not be left blank ");
            return false;
        }

        if (cal1 != '' || cal2 != '')
         {
            var dt1 = Date.parse(cal1);
            var dt2 = Date.parse(cal2);
            if (dt1 <= dt2) {
                alert("End Date must occur after the Start date ");
                return false;
            }
        }
     //if the all the validation are correct it comes to this
        if (button.value == "Enable")
            button.value = "Disable";
        else
            button.value = "Enable";

        return true;
    }

按钮

<asp:Button ID="button1" OnClientClick=" return validate()" runat="server" Text="Enable" />

最佳答案

条件为&&代替 ||然后你通过了return false停止回发 完成验证后尝试 return false并使用if - else将节省您的时间validate

function validate()
 {
var cal1 = document.getElementById('<%=txtEndDate.ClientId%>').value;
var cal2 = document.getElementById('<%=txtStartDate.ClientId%>').value;
var button=document.getElementById('<%=button1.ClientId %>')

        if (cal1 == '') {
            alert("End Date can not be left blank ");
            return false;
        }
        else if (cal2 == '') {
            alert("Start Date can not be left blank ");
            return false;
        }    
        else if (cal1 != '' && cal2 != '')
         {
            var dt1 = Date.parse(cal1);
            var dt2 = Date.parse(cal2);
            if (dt1 <= dt2) {
                alert("End Date must occur after the Start date ");
                return false;
            }
            else{
                  //if the all the validation are correct it comes to this
                  if (button.value == "Enable")
                      button.value = "Disable";
                  else
                     button.value = "Enable";
                }
        }         
        return false;
    }

和按钮 - <asp:Button ID="button1" OnClientClick=" return validate();" runat="server" Text="Enable" />

关于javascript - 如何在页面加载后停止按钮文本更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446105/

相关文章:

javascript - 在 React.js 中调用同一页面中的多个组件

c# - 系统.Data.SqlClient.SqlException : Implicit conversion from data type sql_variant to uniqueidentifier is not allowed.

c# - C# 和 Godaddy 服务器发送电子邮件错误

c# - 文本框未显示在 GridView 中

c# - 根据从数据库读取的文本值检查 RadioButtonList 中的单选按钮

javascript - jQuery 验证插件验证具有相似名称的输入?

javascript - element.style 显示错误信息

javascript - Drupal 8 的 Jquery .once() 问题

javascript - 如何剪切字符串中某些字符后的部分

asp.net - 在 rowcommand 事件上从 gridview CheckBoxField 获取值