私はresetyear関数を呼び出して、その呼び出しもしようとしていますが、フローはalert( "over")で停止し、resetmasterに制御を移しません。何か提案してください。
String flag = "";
flag = (String) session.getAttribute("flag");
System.out.println("flag = " + flag);
if (flag == null) {
flag = "";
}
if (flag.equals("yes")) {
%>
<script>
alert(1);
// resetyear();
dontreset();
//document.getElementById("checkyear").value = "1";
//alert(document.getElementById("checkyear").value);
</script>
<%} else if(flag.equals("no"))
{%>
<script>
alert(2);
//document.getElementById("checkyear").value = "2";
//alert(document.getElementById("checkyear").value);
resetyear();
</script>
<%}else{}%>
function resetyear(){
if(confirm("DO YOU WANT TO RESET THE YEAR?"))
{
alert("hello");
//document.forms['indexform'].action = "resetmaster";
//alert(document.forms['indexform'].action);
//document.forms['indexform'].submit();
alert("over");
form.action = "resetmaster";
form.submit();
alert(1);
}
私にとってはうまくいきます:
document.getElementById("checkyear").value = "1";
alert(document.getElementById("checkyear").value);
たぶんあなたのJSは実行されず、すべての周りにfunction(){}を追加する必要があります。
要素が存在した後にスクリプトを実行する必要があります。 <input type="hidden" name="checkyear" id="checkyear" value="">
を先頭に移動します。
Google Chromeでは正常に動作するようです。どのブラウザを使用していますか?ここで証明 http://jsfiddle.net/CN8XL/
とにかく、document.FormName.checkyear.value
を介して入力値パラメーターにアクセスすることもできます。以下に示すように、適切なname
属性を使用して、<form>
タグで入力をラップする必要があります。
<form name="FormName">
<input type="hidden" name="checkyear" id="checkyear" value="">
</form>
jQueryライブラリの使用を検討しましたか? .val()
関数のドキュメント です。
最初に試すこと-アラートを含むコードが実際にレンダリングされるかどうかを判断します。あなたが投稿したものにサーバーの「if」コードがあるので、javascriptをレンダリングする条件が満たされていない可能性があります。そのため、作業しているページで右クリック->ソースを表示します。そこでjsコードを見つけてください。ページでコードを見つけた場合はお知らせください。
非表示入力の値を設定するためのコードは正しいです。 例 です。スクリプトの実行を許可していないif
ステートメントの条件があるかもしれません。