解決済み: }
Javascript 内に迷い込んでいます。Eclipse IDE は、JSP ではこれらをチェックしません。
Javascript 関数を JSP で呼び出すのに問題があります。上記で、機能している機能と機能していない機能についてコメントしました。私の目標は、渡されたパラメーターに基づいてドロップダウン ボックスを事前に選択することです。
<script type="text/javascript">
//this alert not working
alert('alert1');
function preloadDropdownBoxes() {
//preload function alert not calling
alert('preload function called');
//mapping vars to java variables
var sYear = '<%=sYear%>';
var collectionPeriod = '<%=collectionPeriod%>';
var submission = '<%=submission%>';
var availDate = '<%=availDate%>';
var openDate = '<%=openDate%>';
var closeDate = '<%=closeDate%>';
//these are time generated values based on calendar instance
var pastTwoYear = '<%=pastTwoYear%>';
var pastYear = '<%=pastYear%>';
var currentYear = '<%=currentYear%>';
var futureYear = '<%=futureYear%>';
//change selectedIndex values if dropdown in JSP has "pastTwoYear"
if (sYear == pastTwoYear) {
document.getElementById('pastTwoYear').selectedIndex = 0;
} else if (sYear == pastYear) {
document.getElementById('past').selectedIndex = 0;
alert(sYear + '0');
} else if (sYear == currentYear) {
document.getElementById('current').selectedIndex = 1;
alert(sYear + '1');
} else if (sYear == futureYear) {
document.getElementById('future').selectedIndex = 2;
alert(sYear + '2');
} else if(sYear == futureTwoYear) {
document.getElementById('futureTwoYear').selectedIndex = 3;
alert(sYear + '3');
}
} //end preLoadDropdownBoxes()
</script>
次に、ドロップダウン ボックスのコードを作成します。ここにスニペットがあります:
<select name="sYear1" id="sYear1" onchange="javascript:PreselectMyItem();">
<option value="past"><%=cal.get(java.util.Calendar.YEAR)-2%>-<%=cal.get(java.util.Calendar.YEAR)-1%></option>
<option value="current"><%=cal.get(java.util.Calendar.YEAR)-1%>-<%=cal.get(java.util.Calendar.YEAR)%></option>
<option value="future"><%=cal.get(java.util.Calendar.YEAR)%>-<%=cal.get(java.util.Calendar.YEAR)+1%></option>
</select>
最後に、一番下に別のスクリプトがあります。preloadDropdownBoxes();
関数を最後に配置する予定です。使ってみ$(document).ready
たけどダメでした。コードは次のとおりです。
<script>
// these two alert calls work
alert('footer');
alert('footer next');
// these functions aren't being called
window.preloadDropdownBoxes();
document.getElementById('future').selectedIndex = 2;
window.alert('document ready on bottom');
</script>
</body>
</html>
どんな助けでも大歓迎です!
編集: テスト ボタンを次のように作成しましたが、<input type="button" value="test" onclick="javascript:alert('test');"/>
このアラートは機能します。関数 test() { alert('hello'); ただし、ボタンが次の場合、上記のスニペット関数は呼び出されません。<input type="button" value="test" onclick="javascript:test();"/>