SORU
31 Mart 2009, Salı


Sav, bir İstemci tarafı ve Sunucu Tarafı doğrulama değil ASP.NET Özel ateş

Bu bana daha önce de olmuştu, ama nedense istemci ve sunucu tarafında doğrulama olayları tetiklenir değil:

<asp:TextBox ID="TextBoxDTownCity" runat="server" CssClass="contactfield" />
<asp:CustomValidator ID="CustomValidator2" runat="server" EnableClientScript="true"
    ErrorMessage="Delivery Town or City required"
    ClientValidationFunction="TextBoxDTownCityClient" 
    ControlToValidate="TextBoxDTownCity"
    OnServerValidate="TextBoxDTownCity_Validate" Display="Dynamic" >
</asp:CustomValidator>

Sunucu tarafında olay doğrulama:

protected void TextBoxDTownCity_Validate(object source, ServerValidateEventArgs args)
{
    args.IsValid = false;
}

İstemci tarafı doğrulama olay:

function TextBoxDCountyClient(sender, args) {
    args.IsValid = false;
    alert("test");
}

Sunucu Tarafında doğrulama kovar ama en azından düşündüm. bu daha önce hiç başıma gelmemişti. Bu gerçekten kafa karıştırdı.

Çıktı baktım ve ASP.NET istemci tarafı işlevi tanımak

JavaScript çıktı ASP.NET :

var ctl00_ctl00_content_content_CustomValidator2 = document.all ? document.all["ctl00_ctl00_content_content_CustomValidator2"] : document.getElementById("ctl00_ctl00_content_content_CustomValidator2");

ctl00_ctl00_content_content_CustomValidator2.controltovalidate = "ctl00_ctl00_content_content_TextBoxDTownCity";

ctl00_ctl00_content_content_CustomValidator2.errormessage = "Delivery Town or City required";

ctl00_ctl00_content_content_CustomValidator2.display = "Dynamic";

ctl00_ctl00_content_content_CustomValidator2.evaluationfunction = "CustomValidatorEvaluateIsValid";

ctl00_ctl00_content_content_CustomValidator2.clientvalidationfunction = "TextBoxDTownCityClient";

Özel doğrulayıcı işlenmiş:

<span id="ctl00_ctl00_content_content_CustomValidator2" style="color:Red;display:none;">Delivery Town or City required</span> 

Herhangi bir istemci ve sunucu tarafında doğrulama ateş olmaz, neden biraz ışık tutabilir.

Edit: Yazım hatası ben yanlış işlev yapıştırılan, sorun yine aynı

Son yorum için başka bir güncelleme: nerede TextBox boş olamaz. Bu dışarı test ettim ve doğru değildir. Boş bir sayfaya CustomValidator tarafında doğrulama iyi bir değeri olmayan fonksiyon müvekkilim ateş:

<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" 
ErrorMessage="CustomValidator" ClientValidationFunction="TextBoxDAddress1Client"></asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

CEVAP
31 Mart 2009, Salı


TextBox boş değilse CustomValidator sadece yangın.

Eğer boş değil emin olmak için gerekiyorsa RequiredFieldValidator bir çok ihtiyacınız olacak.

Note: If the input control is empty, no validation functions are called and validation succeeds. Use a RequiredFieldValidator control to require the user to enter data in the input control.

DÜZENLEME:

Eğer CustomValidator ControlToValidate öznitelik (orijinal örnek) sonra doğrulama fonksiyonları tek kontrol boş değil ne zaman çağrılır belirtir.

Eğer ControlToValidate sonra doğrulama belirtmek musun diye işlevleri her zaman çağrılır.

Bu sorun için ikinci bir çözüm yolu açıyor. RequiredFieldValidator, Bir ayrı kullanmak yerine CustomValidator ControlToValidate öznitelik ihmal ve doğrulama fonksiyonları böyle bir şey yapmak için kurulum olabilir:

(Javascript) istemci Tarafı kodu:

function TextBoxDCountyClient(sender, args) {
    var v = document.getElementById('<%=TextBoxDTownCity.ClientID%>').value;
    if (v == '') {
        args.IsValid = false;  // field is empty
    }
    else {
        // do your other validation tests here...
    }
}

(C#) sunucu tarafı kodu:

protected void TextBoxDTownCity_Validate(
    object source, ServerValidateEventArgs args)
{
    string v = TextBoxDTownCity.Text;
    if (v == string.Empty)
    {
        args.IsValid = false;  // field is empty
    }
    else
    {
        // do your other validation tests here...
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013
  • MyCyberAcademy

    MyCyberAcade

    2 EKİM 2011
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007