2012-02-02 31 views
1

我有一個asp:保存XSL信息的XML標籤:充分利用XSL創建HTML元素,從Javascript

<asp:xml id="XmlMetadataFields" TransformSource="ShowClientTypesPerItemActivity.xsl" ></asp:xml> 

這裏面XSL,有一些代碼,生成HTML。這是與此相關的位:

<xsl:when test="@FieldTypeID = 5"> 
    <input type="checkbox"> 
     <xsl:if test="Visibility = 0"> 
      <xsl:attribute name="hidden"> 
       <xsl:value-of select="@Visibility"/> 
      </xsl:attribute> 
     </xsl:if> 
     <xsl:attribute name="name"> 
      DefValue<xsl:value-of select="@FieldID"/> 
     </xsl:attribute> 
     <xsl:attribute name="id"> 
      DefValue<xsl:value-of select="@FieldID" /> 
     </xsl:attribute> 
     <xsl:if test="Value = true"> 
      <xsl:attribute name="checked"> 
       <xsl:value-of select="Value"/> 
      </xsl:attribute> 
     </xsl:if> 
    </input> 
</xsl:when> 

Javascript函數試圖調用HTML這個XSL裏面:

if(document.all["DefValue639"].checked) 

的事情是,JavaScript的沒有找到XSL內的元素。當我正確地將HTML頁面輸出粘貼到客戶端時,我找不到輸出(無法在任何地方找到DefValue)。

如何從Javascript訪問XSL?我完全誤解了一些東西嗎?

+0

你想實現與XLS什麼? xsl的典型用法是將純xml轉換爲html。 – 2012-02-02 12:42:02

+0

這就是這個XSL所做的 - 儘管我在右鍵單擊「查看源代碼」時看不到HTML代碼,但它的輸出HTML至少是瀏覽器可以看到的。順便說一句,在Chrome中,我甚至無法看到複選框。 – jbkkd 2012-02-02 12:44:14

+0

對不起,您是否試圖實際訪問XSL本身,或通過將XSL覆蓋到XML上生成的HTML? – 2012-02-02 12:47:23

回答

0

你必須讓input -tag這樣才能設置屬性:

<xsl:element name="input"> 
    <xsl:attribute name="type">checkbox</xsl:attribute> 
    ... 
</xsl:element> 
+0

我試過這個,但由於某些未知的原因,複選框變成了一個文本框。我仔細檢查了我是否做了正確的事情,甚至輸出中的HTML都被寫爲複選框,但它顯示爲文本框。 – jbkkd 2012-02-06 08:26:44

+0

你能給我們一個輸出的例子嗎? – 2012-02-06 08:34:07

+0

在粘貼輸出的同時,我發現了這個問題。 XSL在輸出中增加了白色間距,因爲我在XSL的行間寫入了間距。 謝謝! – jbkkd 2012-02-06 08:58:51