2012-02-09 89 views
1

我在if語句中沒有發射兩個JavaScript消息框 - 編譯器只是繞過代碼,就好像它不在那裏一樣。這個完全相同的代碼在if語句之外的地方工作。任何人都可以闡明爲什麼這不起作用?謝謝javascript msgbox if語句

If chk1.Checked And chk4.Checked Then 

    Dim message As String = "Invalid" 
    Dim sb As New System.Text.StringBuilder() 
    sb.Append("<script type = 'text/javascript'>") 
    sb.Append("window.onload=function(){") 
    sb.Append("alert('") 
    sb.Append(message) 
    sb.Append("')};") 
    sb.Append("</script>") 

    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString()) 
Else 
    If chk2.Checked = True And chk5.Checked = True Then 
     Dim message2 As String = "Invalid" 
     Dim sb2 As New System.Text.StringBuilder() 
     sb2.Append("<script type = 'text/javascript'>") 
     sb2.Append("window.onload=function(){") 
     sb2.Append("alert('") 
     sb2.Append(message2) 
     sb2.Append("')};") 
     sb2.Append("</script>") 

     ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb2.ToString()) 
    Else 
+1

If/Else'的其餘部分在哪裏?另外:**如果郵件中包含一個撇號,這將會中斷**(我知道你的例子沒有) – egrunin 2012-02-09 22:49:36

+0

我不認爲其餘的聲明是相關的......它工作正常 - 我發佈的代碼是問題出在 – user765942 2012-02-14 16:23:06

+0

你在哪裏發佈這個代碼?在「OnClick」處理程序中?在'Page_Load'處理程序中? – egrunin 2012-02-14 22:58:53

回答

-2

嘗試==而不是=如果條件!

+1

這不是VBScript的情況。 – Sarfraz 2012-02-09 14:34:44

+1

@hardik:在VB條件檢查與=不== == – Pranav 2012-02-09 14:37:46

0

嘗試更換:

sb2.Append("</script>") 

有了:

sb2.Append("<\/script>") 
在這兩個條件

瀏覽器不允許直接注入,你需要欺騙它。


我想知道爲什麼要將Javascript和VBScript混合在一起,或者它如何運行。

+0

標記爲'VB.NET'的問題。這是「Visual Basic .Net」語言的服務器端代碼。 – 2012-02-09 14:50:19

+1

@AndrewD .:即使它是vb.net,爲什麼投票呢? – Sarfraz 2012-02-09 14:56:47

+0

好的,謝謝你 – user765942 2012-02-09 14:57:32

0

確保您的onload事件未設置複選框。 The ASP.net lifecycle指定onload事件將首先觸發,因此將複選框設置爲onload部分中定義的內容。如果你需要避免這種情況,只是包裝,設置複選框在 if not isPostback then語句的代碼來避免這種情況的發生

0

ASPX:

<asp:Button ID="Button1" runat="server" Text="Button" /> 
<br /> 
<asp:CheckBox ID="CheckBox1" Text="CheckBox1" runat="server" /> 
<asp:CheckBox ID="CheckBox2" Text="CheckBox2" runat="server" /> 

VB:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim message As String = "not (chk1 and chk2)" 
    If CheckBox1.Checked And CheckBox2.Checked Then 
     message = "chk1 and chk2" 
    Else 
     If CheckBox1.Checked Then 
      message = "chk1" 
     ElseIf CheckBox2.Checked Then 
      message = "chk2" 
     End If 
    End If 
    Dim sb As New System.Text.StringBuilder() 
    sb.Append("<script type = 'text/javascript'>") 
    sb.Append("window.onload=function(){") 
    sb.Append("alert('") 
    sb.Append(message) 
    sb.Append("')};") 
    sb.Append("</script>") 
    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString()) 
End Sub 

我測試了這個代碼....