JavaScriptを使用して動的HTMLテーブルを作成しようとしています。私はその場でテーブルに行を追加する小さな関数を書いています。しかし、個々の細胞自体はgspタグのelemetsでなければなりません。下の例では、grails-UIプラグインが提供するautoCompleteタグを使用しようとしています。セルのinnerHTMLをgspタグに設定しても、ページ上にはレンダリングされません。JavascriptのGSPタグを使用
function addIngredientRow(tableName,element){
var table = document.getElementById(tableName);
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
var leftCell = row.insertCell(0);
var autoCompleteDiv = document.createElement('div');
leftCell.appendChild(autoCompleteDiv);
autoCompleteDiv.innerHTML= '<gui:autoComplete id="autoCompleteIngredient" resultName="ingredients" labelField="name" idField="id" controller="recipe" \
action="getIngredientAsJSON" forceSelection="true" \
useShadow="true" width=60px queryDelay=0.5 />';
var rightCell = row.insertCell(1);
var autoCompleteDivR = document.createElement('div');
rightCell.appendChild(autoCompleteDivR);
autoCompleteDivR.innerHTML= '<p>test</p>';
}
次のようにこのコードを呼び出すHTMLスニペットは次のとおりです。
<tr>
<td>
<gui:autoComplete
id="autoCompleteIngredient"
resultName="ingredients"
labelField="name"
idField="id"
controller="recipe"
action="getIngredientAsJSON"
forceSelection="true"
useShadow="true"
width=60px
queryDelay=0.5
/>
</td>
<td>
<div onclick="addIngredientRow('createRecipeTable',this)"><img alt="Add Ingredient" src="${resource(dir:'images/icons',file:'Add16.png')}" ></div>
</td>
</tr>
私はjavascriptのアラートを置くことによって呼び出されていることを確認しています。だから、すべての配線は問題ありません。私は、問題はブラウザでgspタグを解決することだと思います。どうすればjavascriptからgspタグを呼び出すことができますか?
クール...あなたの返事に感謝します。あなたはgrailsの世界でこれを達成するための良いフレームワーク/プラグインとは何でしょうか? –
より良いシステムを構築することを検討してください。クライアント生成コードをサーバー側で実行することは、セキュリティ上の大きなリスクです。誰かがあなたのページのソースを見て、あなたのサーバーを殺す可能性のある悪意のあるgspタグを提出するのは自明ではないでしょう。 –