是否可以直接使用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();充当输入值。
答案 0 :(得分:1)
在该实现中,不能将value
标记内的input
属性等同于JavaScript函数。
根据w3.org,value属性只能等于
没有换行符的字符串
任何不包含换行符的字符串 (U + 000A,“LF”)或回车(U + 000D,“CR”)字符。
我不确定getValue()
函数中的内容是什么,但是当单击提交按钮并运行getValue()
函数时,您可以调用click事件处理程序。
实施例。
<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>
我希望它能引导你。
答案 1 :(得分: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();"/>
然后稍后说一下body脚本块的结尾:
function getValue(){ return "bar"; }
function setUserId(){
document.querySelector("input[name='User_id']").value = getValue();
}