如何通过 JavaScript 设置输入隐藏字段的值?

Posted

技术标签:

【中文标题】如何通过 JavaScript 设置输入隐藏字段的值?【英文标题】:How to set the value of a input hidden field through JavaScript? 【发布时间】:2013-10-14 11:56:40 【问题描述】:

我正在尝试调用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);

【问题讨论】:

尝试将您的 html 放在 尝试对其执行操作的脚本之前。 "" 是什么意思? @underscorePez 谢谢你的朋友。我更改了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答 编辑是否使问题完全脱离了标题和答案? 【参考方案1】:

对我来说它有效:

document.getElementById("checkyear").value = "1";
alert(document.getElementById("checkyear").value);

http://jsfiddle.net/zKNqg/

也许你的 JS 没有执行,你需要在它周围添加一个 function() 。

【讨论】:

但是我将不得不调用我不想要的那个函数。我希望它根据 if 条件进行设置。 如果您只创建 function() (没有函数名称),则该函数称为 onload。 至少当我使用 jquery 时它是这样工作的:$(function() ); 谢谢你的朋友。我改变了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答【参考方案2】:

我将尝试的第一件事 - 确定您的带有警报的代码是否实际呈现。我在您发布的内容中看到了一些服务器“如果”代码,因此可能是不满足渲染 javascript 的条件。因此,在您正在处理的页面上,右键单击 -> 查看源代码。尝试在那里找到js代码。如果您在页面上找到代码,请告诉我们。

【讨论】:

谢谢你的朋友。我更改了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答【参考方案3】:

您设置隐藏输入值的代码是正确的。这是example。也许您的 if 语句中有一些条件不允许您的脚本执行。

【讨论】:

谢谢你的朋友。我更改了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答【参考方案4】:

您需要在元素存在后运行脚本。将&lt;input type="hidden" name="checkyear" id="checkyear" value=""&gt; 移到开头。

【讨论】:

谢谢你的朋友。我更改了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答【参考方案5】:

它似乎在谷歌浏览器中运行良好。您使用的是哪个浏览器? 这里是证明http://jsfiddle.net/CN8XL/

无论如何你也可以通过document.FormName.checkyear.value访问输入值参数。您必须将输入包装在 &lt;form&gt; 标记中,就像使用正确的 name 属性一样,如下所示:

<form name="FormName">
    <input type="hidden" name="checkyear" id="checkyear" value="">
</form>

您是否考虑过使用 jQuery 库?这是docs for .val() function。

【讨论】:

谢谢你的朋友。我更改了整个代码。我没有使用隐藏标签,而是直接从 if 条件调用该函数。我再次修改了这个问题。请检查并建议我回答 .val() 无法作用于隐藏元素。见***.com/questions/2979772/… 你确定吗,zamber?我不这么认为 jsfiddle.net/rcegvttm (我使用 jquery 1.12,也尝试使用 2.x 或 3.x 无论如何)另一个帖子:***.com/questions/4376664/…

以上是关于如何通过 JavaScript 设置输入隐藏字段的值?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net里面的javascript没有设置隐藏字段值

如何根据 Django 下拉菜单中的选择显示和隐藏表单字段

如何在不使用 JavaScript 或 jQuery 的情况下将 div 的文本绑定到隐藏字段?

通过作为隐藏输入字段提交的会话 ID 获取 HttpSession

CSS:如何隐藏这样的字段? [关闭]

如何通过jQuery / Javascript获取更新的表单输入值?