0

是否可以直接使用 Javascript 函数的结果作为 HTML 表单的输入值?

<form class="my-form" action="fileUpload.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="User_id" value="getValue();">
    <input type="submit" value="Submit"/>
</form>

这显然是不正确的,但我希望它能传达我想要做的事情。我想要JS函数getValue()的返回结果;作为输入值。

4

2 回答 2

1

在该实现中,不可能将标签value内的属性等同于inputJavaScript 函数。

根据w3.org, value 属性只能等于

没有换行符的字符串

任何不包含换行符(U+000A、“LF”)或回车符(U+000D、“CR”)的字符串。

我不确定getValue()函数内部是什么,但您可以在单击提交按钮时调用单击事件处理程序并运行该getValue()函数。

前任。

<form class="my-form" action="fileUpload.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="User_id">
    <input type="submit" value="Submit" onclick="getValue();"/>
</form>

我希望它能很好地指导你。

于 2016-06-13T01:22:36.113 回答
0

虽然在技术上可以做这样的事情:

<script>
  function getValue(){ return "foo"; }
  document.write("<input type='hidden' name='User_id' value='" + getValue() + "' />");
</script>

这通常是不受欢迎的,因为存在范围问题和页面呈现影响。更被接受的方式是做更多这样的事情..

function getValue(){ return "bar"; }

window.addEventListener("load", function(event){
    document.querySelector("input[name='User_id']").value = getValue();
});

或可能在表单提交或提交按钮上单击以下内容:

function getValue(){ return "bar"; }

document.querySelector("input[type='submit']").addEventListener("click", function(){
    document.querySelector("input[name='User_id']").value = getValue();
});

虽然我自己并不热衷于此,但可以通过以下方式执行与上述相同的操作:

<input type="submit" value="Submit" onclick="setUserId();"/>

然后稍后说正文脚本块的结尾:

function getValue(){ return "bar"; }

function setUserId(){
    document.querySelector("input[name='User_id']").value = getValue();
}
于 2016-06-13T01:24:17.103 回答