我正在尝试调用resetyear函数并且它也被调用但是流程停止在警报(“结束”),它不会将其控制转移到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);
}
答案 0 :(得分:55)
对我来说,它有效:
document.getElementById("checkyear").value = "1";
alert(document.getElementById("checkyear").value);
也许你的JS没有被执行,你需要在它周围添加一个函数(){}。
答案 1 :(得分:6)
您需要在元素存在后运行脚本。将<input type="hidden" name="checkyear" id="checkyear" value="">
移到开头。
答案 2 :(得分:4)
它似乎在Google Chrome中运行良好。您使用的是哪种浏览器? 这里是证明http://jsfiddle.net/CN8XL/
无论如何,您还可以通过document.FormName.checkyear.value
访问输入值参数。您必须在<form>
标记中包含输入,例如正确的name
属性,如下所示:
<form name="FormName">
<input type="hidden" name="checkyear" id="checkyear" value="">
</form>
您是否考虑过使用 jQuery 库?以下是docs for .val()
function。
答案 3 :(得分:1)
我将尝试的第一件事 - 确定您的代码是否实际呈现了警报。我在你发布的内容中看到了一些服务器“if”代码,因此可能是渲染javascript不满意的条件。因此,在您处理的页面上,右键单击 - &gt;查看源。尝试在那里找到js代码。如果您在页面上找到了代码,请告诉我们。
答案 4 :(得分:1)
您为隐藏输入设置值的代码是正确的。这是example。也许你的if
语句中有一些条件不允许你的脚本执行。