2012-06-05 130 views
2
工作

我有aspx文件下面的代碼:jQuery代碼在瀏覽器和Mozilla Web瀏覽器而不是在Internet Explorer

<asp:GridView ID="GridView1" runat="server" ShowFooter="true" 
AutoGenerateColumns="False" > 
    <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
<asp:LinkButton ID="Button1" runat="server" Text="Active" OnClientClick="return 
confirmMessage(this);" /> 
      </ItemTemplate> 
    </Columns> 
</asp:GridView> 

我有以下的Jquery /客戶端代碼

function confirmMessage(obj) 
{ 
if ($(obj).attr("text")=="Active") 
{ 
return confirm("Convert from active to inactive"); 
} 
else 
{ 
return confirm("Convert from inactive to active"); 
} 
} 

的上述代碼在Mozilla和Chrome瀏覽器上工作正常,但在Internet Explorer的情況下,它始終執行第二個塊,即

return confirm("Convert from inactive to active"); 

幫助將不勝感激。

+0

我有其他的問題和你一樣,對鉻和FF,而不是IE8-代碼工作7 –

+2

粘貼生成的html代碼 –

+0

您是否曾嘗試向函數'confirmMessage'中添加一個輸入參數以捕獲鏈接按鈕?例如'函數confirmMessage(link){}'然後'如果($(link).attr(「text」)==「Active」' –

回答

0

您的問題很可能與不同瀏覽器之間的字符串比較差異以及DOM生成文本DOM機制的差異有關。您是否嘗試在調試器(例如IE9開發人員工具/腳本選項卡)下看到什麼返回IE下的$(obj).attr("text")

此外,無論如何比較文本的方法並不是非常可靠(例如,在您的LinkButtonText中發生任何更改後,它會失敗)。我勸你都依賴於類或不同的鏈接按鈕代替,例如:

  1. 使用以下標記中的LinkBut​​ton:(注意CssClass屬性):

    <asp:LinkButton ID="Button1" runat="server" Text="Active" 
    OnClientClick="return confirmMessage(this);" CssClass="button-activate" /> 
    
  2. 然後使用下面的JavaScript:

    function confirmMessage(obj) { 
        if ($(obj).is(".button-activate")) { 
          return confirm("Convert from active to inactive"); 
        } else { 
          return confirm("Convert from inactive to active"); 
        } 
    } 
    

當你的按鈕是不是 '激活' 了,但「停缸tivate',只需將其他CssClass值設置爲LinkButton即可。

0

沒有屬性叫做'text',ASP.NET服務器控件'Text'屬性被轉換爲客戶端的'value'屬性。

您需要參考的價值像這樣:

$(obj).attr("value"); 

或者更簡單地爲:

$(obj).val(); 
相關問題