使用javascript查询结果作为HTML表单的输入

时间:2016-06-13 00:57:36

标签: javascript php html forms axure

是否可以直接使用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();充当输入值。

2 个答案:

答案 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();
}