1

如何使用javascript调用spring freemarker宏?

<@spring.formInput "message.title" 'id="message1" size="10" name="message1"'/> 
<@spring.showErrors "<br>", "error"/>`

alert(document.getElementsById("message1"));

做不到?

为什么?

4

1 回答 1

0

因为这不是 freemarker 的工作方式,所以在使用<@spring.formInput/>实际发生的情况时:

<#macro formInput path attributes="" fieldType="text">
    <@bind path/>
    <input type="${fieldType}" id="${status.expression}" name="${status.expression}" value="<#if fieldType!="password">${stringStatusValue}</#if>" ${attributes}<@closeTag/>
</#macro>

所以id将是(在你的情况下)'title'并且有时它不会发生我的建议是添加类属性并按类获取你的元素以避免与freemarker发生任何冲突

所以你应该这样:

<@spring.formInput "message.title" 'class="myClass" size="10"'/> 
<@spring.showErrors "<br>", "error"/>`

alert(document.getElementsByClass("myClass"));

这肯定会奏效。我希望这会有所帮助

于 2013-03-14T13:15:50.923 回答