【问题标题】:Validation group or display popup if textbox doesn't have a value如果文本框没有值,则验证组或显示弹出窗口
【发布时间】:2012-08-25 18:48:05
【问题描述】:

所以我有一个 web 表单,其中包含一些使用 ajax 显示 calendarextender 的按钮和文本框。 我想对其进行设置,以便如果选中一个按钮,则还需要选择带有日历日期的相应文本框。我考虑过使用验证组,但我不希望它在按钮单击时出现,并且并非所有文本框日期都需要与它们对应的复选框一起选择。

他们是在 button.check 上执行此操作还是使用 javascript?

例如:

protect void main CheckBox1_Changed(object e event args)
     {
          if(CheckBox1.Changed)
             {
                 /*some kind of validation of date chosen*/
             }
    }

【问题讨论】:

    标签: c# checkbox webforms buttonclick


    【解决方案1】:

    两个例子,一个在 C# 中,第二个在 Jquery 中。两者都使用 Postback 并显示警报。

    通过 C#: (HTML)

        <asp:CheckBox ID="chk" runat="server" AutoPostBack="true"
    OnCheckedChanged="chk_Changed"/>
    <asp:TextBox ID="date" runat="server"></asp:TextBox>
    

    (C#)

        protected void chk_Changed(Object sender, EventArgs e)
        {
            if (chk.Checked && date.Text.Length == 0)   
                Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script language=JavaScript>alert('This is a test');</script>");
        }
    

    其次,这是使用 Jquery: (使用上述控件的Javascript)

    <script type="text/javascript">
    $(document).ready(function() {
    if ($('#chk').attr('checked')) {
        if($('#date').val().length == 0)
            alert('This is the Javascript check');
        }
    });
    

    在每种情况下,您都需要将复选框控件的 AutoPostBack 属性设置为 True

    要更改文本框中的文本,您可以使用:

    <script type="text/javascript">
    var data = "Please enter a value!";
    $(document).ready(function() {
        if ($('#chk').attr('checked')) {
            if ($('#date').val().length == 0)
                ($('#date').val(data));
        }
    });
    

    【讨论】:

    • 它可以在空的或旁边的文本框中显示它,而不是通过弹出来提醒他们。尝试为文本框名称执行 document.getelementbyid,但找不到任何有关如何执行此操作的信息。
    • 查看我的编辑。要在文本框旁边显示它,您可以使用 RequiredFieldValidtor 控件并在 jquery 脚本中引用它。
    • 如何在脚本中引用字段验证器?当我添加它时,它总是显示错误消息,我希望它在按钮单击
    • 您可以从头开始进行表单验证,但如果您想在单独的字段上进行验证,我建议您使用 jquery 插件。这是我使用过的链接:Jquery Validation Engine
    • 非常感谢,但我找到了另一种方法,但感谢原始问题的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多