【问题标题】:Disabling textboxes on page load在页面加载时禁用文本框
【发布时间】:2013-05-13 05:48:44
【问题描述】:

我在一个 div 中有一个登录表单,它最初是隐藏的,当点击“登录”时它是可见的。 此登录表单位于 母版页 中,并且对电子邮件 ID 和密码进行客户端 HTML5 验证。

我有一个带有 ajax 更新面板的子页面,其中有一个按钮“添加到购物车”。但由于母版页登录表单中的此验证,我无法在 “添加到购物车” 按钮单击时执行 回发。

为了避免这种情况,我试图在页面加载时禁用该登录表单(位于母版页中)中的所有文本框: C#:

ScriptManager.RegisterStartupScript(this,this.GetType(), "Javascript2", "javascript:DisablePopUpTxt();", true);

JS:

function DisablePopUpTxt() {

    document.getElementById("txtCustEmailID").disabled = true;
    document.getElementById("txtCustPwd").disabled = true;
}

但上面的代码不起作用,我无法在任何子页面上执行任何回发。 请给我任何解决方案。

提前感谢。

【问题讨论】:

  • 为什么不禁用html代码本身的输入框。
  • @T0X1C——因为如果用户代理禁用了脚本或禁用脚本的脚本失败,输入将始终被禁用。
  • 您是否在页面加载之后运行代码,即在元素存在之后?
  • @TOX1C:我禁用了文本框,正如你所说: 但我无法使用 js 启用它: document.getElementById("txtRCustFName").disabled = false

标签: c# javascript asp.net css html


【解决方案1】:

我认为在特定链接或按钮上设置CauseValidation=false 可能会解决您的错误,以便更多了解您可以查看msdn

【讨论】:

    【解决方案2】:

    尝试对主页面和子页面使用不同的验证组。只需选择母版页中的每个控件,包括按钮并设置 ValidationGroup 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多