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
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.
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...
}
}
JavaScript: sunucu tarafı vs istemci t...
Özel öznitelik için istemci tarafı doğ...
Değil istemci tarafı doğrulama MaxLeng...
İstemci tarafı arasındaki farkı ve sun...
Ekran görüntüsü nasıl web sitesi istem...