0

我有一个中继器,它包含一个单选按钮列表、一个文本框和一个 requiredfieldvalidator 控件。Radiobuttonlist 包含以下内容:

Meets (Value M)
Above (Value A)
Below (Value B)
N/A (Value(N/A)

文本框设置为允许用户为他们的答案输入一些理由,并且 requiredfieldvalidator 确保文本框不为空,足够简单。但是范围发生了一些变化,现在客户希望仅当答案不是“M”时才触发 requiredfieldvalidator。

我尝试为验证器设置 Load 方法,但是当验证器加载时,它不知道 RBL 中的答案是什么,因为它在用户回答之前被触发。我不认为我可以进行回发,因为转发器是在模态弹出窗口中处理的,如果我进行回发,我不确定会发生什么。仅当用户选择“Meets”以外的其他内容时,如何将验证器设置为 false?

4

1 回答 1

1

试试这个:

java脚本:

<script type="text/javascript">
    function UpdateValidator(radioID, validatorid) {
        //enabling the validator only if the checkbox is checked
        var enableValidator = $("#" + radioID).is(":checked");          
        ValidatorEnable(validatorid, enableValidator);
    }
</script>

cs代码:

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            RadioButton rd = e.Item.FindControl("myRb") as RadioButton;
            RequiredFieldValidator rfv = e.Item.FindControl("myRfv") as RequiredFieldValidator;
            // you can just pass "this" instead of "myDiv.ClientID" and get the ID from the DOM element
            rd.Attributes.Add("onclick", "UpdateValidator('" + rd.ClientID + "','" + rfv.ClientID + "');");
        }
    }
于 2012-05-03T13:57:15.427 回答