相关疑难解决方法(0)

Page.IsValid如何运作?

我有以下代码RequiredFieldValidator.该EnableClientScript属性在验证控件中设置为"false".我也在浏览器中禁用了脚本.

我没有Page.IsValid在后面的代码中使用.不过,当我在文本框中提交没有任何价值时,我会得到error message.

根据@Dai的评论,我发现这可能是一个问题,如果有任何代码Page_Load在a中执行postback.不会抛出任何验证错误.

(但是,对于按钮单击处理程序,无需检查Page.IsValid)

if (Page.IsPostBack)
{
    string value = txtEmpName.Text;
    txtEmpName.Text = value + "Appended";
}
Run Code Online (Sandbox Code Playgroud)

  1. 为什么服务器端验证没有发生Page_Load
  2. 为什么我使用它时工作正常Page.IsValid
  3. 您能否提供一篇解释此文章的文章?(不是说 - 总是使用Page.IsValid;但是说明了什么是强制性使用场景Page.IsValid

更新1

请参阅ASP.NET验证器常见错误概念

Page.IsValid只有在之后Page.Validate()隐式调用的run方法之后才能访问Page_Load.如果您将所有逻辑保存在Page_Load事件处理程序中(非常不鼓励!),请Page.Validate()在检查之前调用Page.IsValid.

注意:建议不要保留所有逻辑Page_Load.如果按钮单击事件发生了某些事情,请将其移动到按钮单击事件处理程序.如果在下拉事件中发生某些事情,请将其移至下拉选定的项目更改事件处理程序.

更新2

看起来,我们需要添加If(Page.IsValid)button click,如果我们使用的是也Custom Validator与服务器端验证.请参阅CustomValidator不能正常工作.

注意:此处存在客户端验证问题:是否使用Page_IsValid或Page_ClientValidate()(对于客户端事件)

MARKUP …

asp.net validation

35
推荐指数
1
解决办法
6万
查看次数

防止多次点击按钮

我有以下jQuery代码,以防止双击按钮.它工作正常.我Page_ClientValidate()用来确保只有在页面有效时才会阻止双击.[如果存在验证错误,则不应设置标志,因为没有回发到服务器的启动]

是否有更好的方法可以防止在页面加载之前再次单击按钮?

我们isOperationInProgress = yesIndicator是否可以仅在页面导致回发到服务器时设置标志 ?是否适合event在用户第二次点击按钮之前调用它?

注意:我正在寻找一种不需要任何新API的解决方案

注意:这个问题不重复.在这里,我试图避免使用Page_ClientValidate().此外,我正在寻找一个event我可以移动代码的地方,以便我不需要使用Page_ClientValidate()

注意:我的方案中没有涉及ajax.该ASP.Net表格将被同步提交给服务器.javascript中的按钮单击事件仅用于防止双击.表单提交是使用ASP.Net同步的.

现在的代码

$(document).ready(function () {
  var noIndicator = 'No';
  var yesIndicator = 'Yes';
  var isOperationInProgress = 'No';

  $('.applicationButton').click(function (e) {
    // Prevent button from double click
    var isPageValid = Page_ClientValidate();
    if (isPageValid) {
      if (isOperationInProgress == noIndicator) {
        isOperationInProgress = yesIndicator;
      } else {
        e.preventDefault();
      }
    } 
  });
});
Run Code Online (Sandbox Code Playgroud)

参考文献:

  1. 验证器导致双击检查的不正确行为
  2. 是否使用Page_IsValid或Page_ClientValidate()(用于客户端事件)

@Peter Ivan在上述参考文献中注意到:

重复调用Page_ClientValidate()可能会导致页面过于突兀(多个警报等).

javascript jquery

33
推荐指数
7
解决办法
12万
查看次数

Page_ClientValidate多次验证.

问题是,验证摘要消息(警报)显示两次.我无法弄清楚原因.

请帮忙.这是代码

function validate() //javascript function
{
    if (typeof(Page_ClientValidate) == 'function') 
    {
        var isPageValid = Page_ClientValidate();
        if(isPageValid)
        {
        }
    }
}

<asp:Button ID="btn1" runat="server" OnClientClick="validate()" Text="button"
                    ValidationGroup="ContactGroup" />

<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List" 
                    ShowMessageBox="true" ShowSummary="false" ValidationGroup="ContactGroup" />
Run Code Online (Sandbox Code Playgroud)

javascript asp.net validation

16
推荐指数
3
解决办法
3万
查看次数

未定义Page_ClientValidate

我正在使用ASP.NET 2.0,我使用IE8作为我的默认浏览器,但无论我尝试多少次,Page_ClientValidate一直给我这个错误,它没有定义.我怎么解决这个问题?请帮忙.

asp.net client-side

4
推荐指数
1
解决办法
7598
查看次数

标签 统计

asp.net ×3

javascript ×2

validation ×2

client-side ×1

jquery ×1