Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 自定义验证程序启动,但不阻止回发_C# 4.0_Asp.net 4.0_Customvalidator_Jquery 1.4 - Fatal编程技术网

C# 4.0 自定义验证程序启动,但不阻止回发

C# 4.0 自定义验证程序启动,但不阻止回发,c#-4.0,asp.net-4.0,customvalidator,jquery-1.4,C# 4.0,Asp.net 4.0,Customvalidator,Jquery 1.4,我已经看到了很多关于这个的问题,但是我被难住了!请帮忙 我有一个客户验证器。它开火了,但不能阻止回发。请帮我这么做!我可以看到console.log在post之前注册。但是,无论如何,它都会发回。如何防止回发 <script type="text/javascript"> //<![CDATA[ function validateWhyUnlikely(source, args) { console.log(1); args.isValid = fals

我已经看到了很多关于这个的问题,但是我被难住了!请帮忙

我有一个客户验证器。它开火了,但不能阻止回发。请帮我这么做!我可以看到console.log在post之前注册。但是,无论如何,它都会发回。如何防止回发

    <script type="text/javascript">
//<![CDATA[
function validateWhyUnlikely(source, args) {
    console.log(1);
    args.isValid = false;
}
//]]>
我尝试添加一个控件进行验证,验证空文本是否等于true。我还尝试添加e.preventdefault,但没有成功:(

如何防止回发

    <script type="text/javascript">
//<![CDATA[
function validateWhyUnlikely(source, args) {
    console.log(1);
    args.isValid = false;
}
//]]>

//


jQuery(文档).ready(函数(){
jQuery(“#”)。单击(函数(e){
如果(Page.IsValid==false){
console.log(false);
e、 预防默认值();
返回false;
}
});
});

尽管我不确定您为什么要将
单击
功能附加到提交按钮上,但一切看起来都正常。我会删除该功能并测试它,因为它可能会覆盖默认行为

此外,我认为您需要将
IsValid
属性大写:

args.IsValid = false;

我也面临这个问题,我试图将一个自定义验证器添加到一个dropdownlist中,该列表附带了一个
selectedIndexChange
事件。在我为dropdown提供了不正确的值后,我能够使用自定义验证器中给出的错误消息,但在它发生回发后,我立即就可以使用它

但是,将此属性
CausesValidation=“true”
添加到dropdownlist控件后,解决了我的问题


将此属性添加到下拉列表后,没有对错误的值进行回发。

我也遇到了此问题

我所做的是,在按钮调用的C#过程中,我在顶部添加了

if (IsValid == false)
         return;

我无法阻止它执行回发,因此在我看来,这是唯一的解决方案。

发布此消息,因为它可能会帮助有同样奇怪行为的人

起初我的问题和这篇文章的标题一样,我检查了这里的所有建议,但我的代码似乎很好


为了解决这个问题,我替换了我的原因验证控件
您误用了
ControlToValidate=“txtwyungally”
如果它有助于其他人,我有一个验证组,但我忘了添加按钮


确保将按钮、文本框和验证程序添加到同一验证组中,以防止回发。

我通过创建一个变量解决了这个问题:

 Boolean fieldIsValid = true;
在自定义验证表达式中,如果参数不为true,我将更改值:

if(args.IsValid == false)
            {
                fieldIsValid = false;
            }
            else
            {
                fieldIsValid = true;
            }
然后,我还将其放在了submit click方法中:

protected void submit_Click(object sender, EventArgs e)
        {
            if (fieldIsValid)
            {
                //submit my things
            }
        }

谢谢…我希望JavaScript被编译!没有错误,没有看到这个大小写错误@Kelsey在2分钟前解决了我的问题。谢谢你的帮助回答并花时间让我们也知道。+1正确,关键是你不需要所有这些代码来防止回发。这是控件已经做过的事情。只需要指定验证组。
protected void submit_Click(object sender, EventArgs e)
        {
            if (fieldIsValid)
            {
                //submit my things
            }
        }