2010-03-05 24 views
15

Kullanıcıların metin kutusundan (onBlur olayı) çıktığı zaman değerleri onaylamam gereken bir metin kutusu (metin kutusunun değeri 50 ise lblShowMsg'de görüntülü mesaj) var. Sözdizimi doğru göremiyorum.ASP.NET metin kutusu onblur olayı

protected void Page_Load(object sender, EventArgs e) 
{ 
    txtCategory.Attributes.Add("onblur", "validate()"); 

} 

Ama javascript kodu doğru almak gibi olamaz:

benim pageload olayı bu kodu var. Baska öneri?

+2

neden anında değil işaretlemesinde Onblur niteliğini ekliyoruz: Ve şimdi biçimlendirme sayfası (.aspx) içinde sayfasının baş bölümünde bu javascript var? – awright18

cevap

9

arkasında


Sayfam

<script type="text/javascript"> 
    function Validate() { 

     alert('validate'); 

    } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="Textbox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </div> 
    </form> 
</body> 
</html> 

kodu: (VB.NET)

txtAccountNumber biçimlendirme sayfasında TextBox kimliğidir ve JavaScript istemci tarafı değil sunucu tarafında olduğu için metin kutusu İstemciKimliği geçmesi sayfa yüklenme olayı

txtAccountNumber.Attributes["onBlur"] = "IsAccNumberValid(" & txtAccountNumber.ClientID & ")"; 

günü

.

<script type="text/javascript">      
function IsAccNumberValid(txtAccountNumber) {            
    if (txtAccountNumber.value.length < 6) {  
         alert(txtAccountNumber.value); 
      }  
     }  
</script> 
+3

İşte C# Sürümü: ddlCompanies.Attributes ["onBlur"] = "AddNewCompany1 (" + ddlCompanies.ClientID + ")"; –

5

Bu, Page_Load dosyanızdaki gerçek kod mu? TextBox için tür adını değil, denetimin adını kullanmanız gerekir. Örneğin, denemek isteyebilirsiniz:

"textBox1" yerine İşaretlemenize içinde metne atanan kimliktir
textBox1.Attributes.Add("onblur", "validate();"); 

.

Ayrıca, Javascript'ten, textBox'ın kimliğinin sayfaya işlendiğinde değişmiş olması da mümkündür.

function validate(_this) 
{ 
    if (_this.value == "50") 
     // then set the ID of the label. 
} 

Sonra böyle niteliğini ayarlarsınız:

textBox1.Attributes.Add("onblur", "validate(this);"); 

Son olarak şiddetle JQuery kütüphanesini eğer kullanarak öneriyoruz, sen doğrulamak işlevine kontrolünü geçmesi olsaydı daha iyi olurdu Javascript'te bir şey yapıyorsun. Hayatınızı 10 kat daha kolaylaştıracak.

+0

Üzgünüm, bu benim tarafımdaki bir yazım hatasıydı. TxtBox kimliği txtCategory – LearningCSharp

+0

Yukarıdaki kodu (JQuery yok) yukarıdaki gibi çalıştırdığınızda, "Microsoft JScript çalışma zamanı hatası: 'document.form1 bir hata iletisi alıyorum.lblShowMsg 'null ya da bir nesne değil' – LearningCSharp

+0

Yine, sorunun bir kısmı kullanmak istediğiniz etiketin başka bir şeye yeniden adlandırılmasından daha fazlasıdır. Firefox'ta IE veya FireBug'da Geliştirici Araçları gibi bir şey kullanın. _actual_ formdaki etiketin kimliği Bu araçların her ikisi de DOM'ı taramanıza izin verir. Bunu bulduktan sonra, öğeyi almak için document.getElementById ("öğenin kimliğini") kullanın ve öğeyi innerHTML olarak ayarlayabilirsiniz. Javascript özelliği –

2

Bu çalışır.

Textbox1.Attributes.Add ("onblur", "javascript: alert ('aaa');");

İşlev, sayfanın komut bölümünde yer aldığından emin olun. arkasında Code

public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      Textbox1.Attributes.Add("onblur","Validate();"); 
     } 
    } 
+0

Bir uyarıya gerek yok; Bir etikete msg gösterilmesi gerekiyor; (lblShowMsg.visible = true) – LearningCSharp

İlgili konular