gpt4 book ai didi

c# - 如何根据条件设置必填字段?

转载 作者:行者123 更新时间:2023-11-30 20:06:17 26 4
gpt4 key购买 nike

我想问是否可以在以下条件下使该字段成为必填字段:如果其他字段不为空,则设置一个文本框为必填项,否则它将是可选的。

最佳答案

您可以使用 CustomValidator为此,但是您需要了解一些内容才能使其正常工作。问题是,如果您在验证器上设置 ControlToValidate 属性,那么它只会在该控件有值时触发。在您的情况下,您希望在它没有值时专门对其进行验证。

要解决这个问题,请不要在验证器上设置 ControlToValidate 属性。然后,在您的客户端和服务器验证处理程序中,您将需要直接访问这两个文本框。

在您的客户端验证功能中,您可以执行如下操作:

function OnCustomClientValidate(source, e) {
e.IsValid = true;
var otherTextBoxValue = $('#<%=OtherTxtBox.ClientID%>').val().trim();
if (otherTextBoxValue == '') {
return;
}
var controlToValidateValue = $('#<%=TextBoxToValidate.ClientID%>').val().trim();
if (controlToValidateValue == '') {
e.IsValid = false;
}
}

您的服务器验证方法可能如下所示:

protected void OnCustomServerValidate(object source, ServerValidateEventArgs e)
{
e.IsValid = true;
// Don't validate anything if `OtherTextBox` is empty
if (OtherTxtBox.Text.Trim() == String.Empty)
{
return;
}

// If we got this far then we need to set IsValid to false if the ControlToValidate has no value
if (TextBoxToValidate.Text.Trim() == String.Empty)
{
e.IsValid = false;
}
}

你的 aspx 可能是这样的:

<asp:TextBox ID="OtherTextBox" runat="server"></asp:TextBox>
<asp:CustomValidator ID="MyCustomValidator" runat="server" ClientValidationFunction="OnCustomClientValidate" OnServerValidate="OnCustomServerValidate" Display="Dynamic" ErrorMessage="Please enter a value"></asp:CustomValidator>
<asp:TextBox ID="TextBoxToValidate" runat="server"></asp:TextBox>

请注意,使用此方法时,当要验证的(预期的)控件失去焦点时它不会验证,因为我们没有指定该控件。因此,当您提交表单时,客户端验证将触发,但如果验证失败,回发将被取消。

关于c# - 如何根据条件设置必填字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com