Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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#在下拉列表javascript验证失败时继续执行服务器端脚本_C#_Javascript_Asp.net_Validation - Fatal编程技术网

停止C#在下拉列表javascript验证失败时继续执行服务器端脚本

停止C#在下拉列表javascript验证失败时继续执行服务器端脚本,c#,javascript,asp.net,validation,C#,Javascript,Asp.net,Validation,我试图验证下拉列表的当前值,并检查它是否在单击按钮时选择了其中一个选项。如果不是,我的目标是让JS提示符出现 用户可以选择一些东西。我的下拉代码如下所示: <asp:DropDownList ID="TBDrop" runat="server" AppendDataBoundItems="true" DataValueField="id" Width="155px"> <asp:ListItem Text="---Select---" Value

我试图验证下拉列表的当前值,并检查它是否在单击按钮时选择了其中一个选项。如果不是,我的目标是让JS提示符出现 用户可以选择一些东西。我的下拉代码如下所示:

        <asp:DropDownList ID="TBDrop" runat="server" AppendDataBoundItems="true" DataValueField="id" Width="155px">
        <asp:ListItem Text="---Select---" Value="0" />
        <asp:ListItem Text="YES" Value="1" />   
        <asp:ListItem Text="NO" Value="2" />   

        </asp:DropDownList>
  <asp:Button ID="tagComplete" runat="server" Height="23px" OnClick="tagComplete_Click"  Text="Complete" OnClientClick="validate_dropdown1();" />
我的按钮是这样的:

        <asp:DropDownList ID="TBDrop" runat="server" AppendDataBoundItems="true" DataValueField="id" Width="155px">
        <asp:ListItem Text="---Select---" Value="0" />
        <asp:ListItem Text="YES" Value="1" />   
        <asp:ListItem Text="NO" Value="2" />   

        </asp:DropDownList>
  <asp:Button ID="tagComplete" runat="server" Height="23px" OnClick="tagComplete_Click"  Text="Complete" OnClientClick="validate_dropdown1();" />

但这会导致内存不足错误提示。我应该如何使用JS验证,以便如果用户在下拉列表中选择默认文本之外的内容,它将在服务器端脚本上继续,否则将保持当前页面上的状态

对按钮声明进行一个小更改

OnClientClick="return validate_dropdown1();"

<asp:Button ID="tagComplete" runat="server" Height="23px" OnClick="tagComplete_Click"  Text="Complete" OnClientClick="return validate_dropdown1();" />
OnClientClick=“return validate\u dropdown1();”

如果validate_dropdown1()返回false,则不会引发事件,服务器也不会回发。

在继续处理其余请求之前,您还可以使用(自定义)验证器验证服务器端。JS验证不是真正的验证。@Bartdude你什么意思?我想通过JS来实现这一点,这样页面就不需要加载,并且检查是在一个瞬间完成的。如果您愿意,您可以在.NET验证中包含客户端脚本。但是,您也可以在第一步中按照您的意图执行,并在javascript中拦截按钮操作,如果验证失败,则停止任何操作。问题是,js验证并不是真正的验证,因为它可以被绕过。但在你们的情况下,这可能不是问题。是的,若在浏览器上禁用JS,那个么将是绕过它的一个选项。但在我的情况下,JS禁用是不适用的。但是谢谢你的建议。当我的JS脚本位于一个外部文件上时,我试图实际使用这个方法,但这个方法不起作用。也许我没有编写正确的格式在ASP.NET上包含JS