これをレコードラインに使用するテンプレートがあります
<input type="${inputType}" name="${variableName}.code" id="${variable}.${vnum}.${answer.code}" class="checkbox" value="${answer.code}"
[#nested/] [#if (answer.textLength > 0) && scripting]onchange="showOtherBox( this, '${variable}.[#if descriptionHack]${variableNumber}[#else]${vnum}[/#if].${answer.code}.description' )"[/#if]
[#if showValues && (existing == answer.code)]checked="checked"[/#if]/>
IE8では、次のようにレンダリングされます
<span class="field">
<INPUT id=responses.8.L class=checkbox value=L type=checkbox name="responses['8'].answers['L'].code">
<LABEL for=responses.8.L>Award(s) for special accomplishment or performance related to activity participation (please list)</LABEL>
<TEXTAREA id=responses.8.L.description class=" visible" rows=4 cols=60 name="responses['8'].answers['L'].description"></TEXTAREA>
</span>
私たちが試した他のすべてのブラウザでは、次のようにレンダリングされます
<span class="field">
<input type="checkbox" name="responses['8'].answers['L'].code" id="responses.8.L" class="checkbox" value="L" onchange="showOtherBox( this, 'responses.8.L.description' )">
<label for="responses.8.L">Award(s) for special accomplishment or performance related to activity participation (please list)</label>
<textarea rows="4" cols="60" name="responses['8'].answers['L'].description" id="responses.8.L.description" class="visible" classname="visible"></textarea>
</span>
違いは、FTLスクリプトのifステートメントです。
[#if (answer.textLength > 0) && scripting]
IEを除くすべてに当てはまります。IE8では、何らかの理由でfalseであるため、入力タグにOnChangejavascriptイベントを配置しません。誰かが以前にこのようなものを見たことがありますか?Freemarker2.3.9を使用しています
更新、IE8の互換モードをオンにするとちょっと動作します。しかし、正確ではありません。これを行うと、チェックボックスがフォーカスを失うまでonchangeイベントは発生しません。これは他のすべてとは大きく異なります。あまり問題なくこれを修正する簡単な方法はありますか?ie8の場合、onchangeの代わりにonclickを挿入するという何かを入れることができると思います。それはうまくいくかもしれませんが、私はそれをそのように修正するためにクライアントからの許可が必要になります。