【问题标题】:jQuery & ASP.NET validators conflict problemjQuery & ASP.NET 验证器冲突问题
【发布时间】:2011-08-21 18:16:39
【问题描述】:

我有一个带有几个验证器的表单的页面。我还有一个按钮(HTML 提交),它可以重置表单并清除所有文本框。代码在我第一次单击该按钮时工作正常,这会清除表单。但是,如果我重新填写表格并尝试第二次清除表格,它将无法正常工作。我还有其他 jQueries 来切换代码区域,在此之后它们也停止工作。
值得一提的是,当我按下清除表单按钮时,asp 验证器会显示自己,这对我来说很奇怪,因为我没有在它们上而不是在我的按钮上放置验证组。我认为这是因为按钮尝试回发。
所以有两个问题,首先是什么导致我的查询不起作用?
其次,如何阻止按钮尝试回发(这会导致显示验证器)?
代码看起来像这样:

<script>
  scripts clearing the form and doing toggle actions here.
</script>
<form>
  label & texbox pairs to get info from user, accompanied by Required field validators.
  <asp:Button ... The Button to submit form />
  <input typ="submit" value="Clear Form" /> -->The button to clear form on client side.
</form>

【问题讨论】:

  • 如果您的问题可能有其他原因,请发布实际代码。
  • 实际代码很大,有没有地方可以上传并给出链接?但我还是放了。
  • 你可以试试jsfiddle.net,但我不确定它能处理多大。

标签: jquery asp.net validation


【解决方案1】:

这将停止提交——添加一个 return false。

 $('#btnResetForm').click(function () {
            $('#<%=txtFname.ClientID %>' +
            ',#<%=txtLname.ClientID %>' +
            ',#<%=txtNatNo.ClientID %>' +
            ',#<%=txtBirthCertNo.ClientID %>' +
            ',#<%=txtUsername.ClientID %>' +
            ',#<%=txtCellNo.ClientID %>' +
            ',#<%=txtPhoneNo.ClientID %>'
            ).val("");
            return false;
        });

您可能希望使用toggle(),而不是显示和隐藏以让按钮继续工作。

【讨论】:

  • 它们不是可以切换的按钮,它们实际上是使不同区域显示和隐藏的单选按钮。
  • 我只会说英语,所以我在您尝试做的事情上遇到了麻烦......对不起。
  • 执行隐藏/显示操作的控件不是按钮。正如您在代码中看到的那样,它们是单选按钮。每个单选按钮显示几个代码区域并隐藏其他区域。所以它不完全是切换,我不能使用切换功能。 (这不会导致任何问题,但感谢您的建议)。
  • 您可以将控件组包含在一个 div 中,然后在该 div 上调用 .toggle() -- 也许这样会更容易?
  • 不是选项,如果单选按钮被点击两次怎么办?
猜你喜欢
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
相关资源
最近更新 更多