2014-02-16 17 views
0

Это часть моего XSL:функция Javascript в XSLT

<input> 
    <xsl:attribute name="data-tn"> 
    RAMPart<xsl:value-of select="../RAMTemplatePartNumber"/> 
    </xsl:attribute> 
    <xsl:attribute name="data-cn"> 
    A<xsl:value-of select="Letter"/> 
    </xsl:attribute> 
    <xsl:attribute name="data-id"> 
    <xsl:value-of select="../../../RAM/RAMPart1/Id"/> 
    </xsl:attribute> 
    <xsl:attribute name="value"> 
    <xsl:value-of select="key('RAMPart1', Letter)" /> 
    </xsl:attribute> 
</input> 

Я хотел бы использовать JS OnChange функции, поэтому, когда я что-то изменить в поле ввода, я получаю предупреждение data-tn, data-cn, идентификатор данных и старое значение. Как это сделать?

ответ

1

Во-первых, вы должны узнать об Шаблонах значений атрибутов, которые могут намного легче записать значения атрибутов. Ваш пример XSLT может выглядеть следующим образом

<input data-tn="RAMPart{../RAMTemplatePartNumber}" 
     data-cn="A{Letter}" 
     data-id="{../../../RAM/RAMPart1/Id}" 
     value="{key('RAMPart1', Letter)}"> 
</input> 

Фигурные скобки указывают выражение для оценки, а не выход в буквальном смысле. Использование этого синтаксиса должно упростить чтение, поскольку оно намного ближе к тому, как XML выводится.

Это также должно сделать его более ясным, как сделать OnChange событие:

<input data-tn="RAMPart{../RAMTemplatePartNumber}" 
     data-cn="A{Letter}" 
     data-id="{../../../RAM/RAMPart1/Id}" 
     onchange="alert('data-tn=RAMPart{../RAMTemplatePartNumber}, data-cn=A{Letter}');" 
     value="{key('RAMPart1', Letter)}"> 
</input> 

Конечно, вы получите ошибки JavaScript, если данных Т.Н. или данных сп имеют апострофы, но его это должно дать вам общую идею.

+0

Прежде всего, это отличный совет, но это очень упрощенная версия моего кода, а иногда мне нужны атрибуты, так как я могу сделать это внутри атрибута? – Wolf

+0

Я не уверен, что понимаю. Возможно, если бы вы расширили свой вопрос, чтобы показать ожидаемый результат от вашего XSLT, это поможет. Благодаря! –

Смежные вопросы