DCSIMG
Change ValidationGroup in client side (Java Script) - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

Change ValidationGroup in client side (Java Script)

 

בתפוז עלתה שאלה, כיצד ניתן לשנות את ה - ValidationGroup בצד הלקוח. (אני אוהב התעסקות עם ולידציות).
 
אז ככה. (ניתן להוריד את הדוגמא, מכאן)
 
נניח שיש לנו את ה - HTML הבא (שני RadioButton, ארבעה תיבות טקסט, ארבעה RequiredFieldValidator, (עם שני ValidationGroup) בנוסף ValidationSummary ולחצן)
 

<input type="radio" name="valid" id="Radio1" value="group1" checked="checked" onclick="ChnageGropu(this)" />1

<input type="radio" name="valid" id="Radio2" value="group2" onclick="ChnageGropu(this)" />2

<br />

 

<asp:TextBox ID="txt1" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv1" ValidationGroup="group1" runat="server"

    ControlToValidate="txt1" ErrorMessage="txt1" Text="*"></asp:RequiredFieldValidator>

<asp:TextBox ID="txt2" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv2" ValidationGroup="group1" runat="server"

    ControlToValidate="txt2" ErrorMessage="txt2" Text="*"></asp:RequiredFieldValidator>

<br />

<br />

 

<asp:TextBox ID="txt3" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv3" ValidationGroup="group2" runat="server"

    ControlToValidate="txt3" ErrorMessage="txt3" Text="*"></asp:RequiredFieldValidator>

<asp:TextBox ID="txt4" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfv4" ValidationGroup="group2" runat="server"

    ControlToValidate="txt4" ErrorMessage="txt4" Text="*"></asp:RequiredFieldValidator>

<asp:ValidationSummary ID="vs" runat="server" ShowMessageBox="true" ShowSummary="false"

    ValidationGroup="group1" />

<br />

<br />

 

<asp:Button ID="btn" Text="click" runat="server" ValidationGroup="group1" />

 
בזמן שינוי ה - Radio אנחנו רוצים לשנות את ה - ValidationGroup של הלחצן ושל ה - ValidationSummary.
 
כך נעשה זאת:
 

<script>

    function ChnageGropu(chk) {

        var btn = document.getElementById('btn');

 

        if (chk.id == "Radio1" && chk.checked) {

            Page_ValidationSummaries[0].validationGroup = "group1";

            btn.outerHTML = btn.outerHTML.replace('group2', 'group1');

        }

        else if (chk.id == "Radio2" && chk.checked) {

            Page_ValidationSummaries[0].validationGroup = "group2";

            btn.outerHTML = btn.outerHTML.replace('group1', 'group2');

        }

    }

</script>

 
אבל זה לא מספיק.
אנחנו צריכים לעדכן את השרת (כמובן כשנגיע לשם) שה - ValidationGroup השתנה.
 

protected void Page_Load(object sender, EventArgs e)

{

    if (Request["valid"] != null)

    {

        vs.ValidationGroup = Request["valid"];

        btn.ValidationGroup = Request["valid"];

    }

}

שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 3 and 3 and type the answer here:


Enter the numbers above: