因此,从本质上讲,我有一个输入,我想在用户提交它之前修改该值。我要做的就是在此输入值的末尾添加一个字符串。我以为会是这样:
<form action="myURL" onsubmit="myFunction" method="POST">
<input id="myID" value="someValue" />
<button type="submit">Press Me!</button>
</form>
<script>
myFunction()
{
var x = document.getElementById("myID").value;
document.getElementById("myID").value = x + "myString";
}
</script>
但是,提交表单时,不会发送附加的字符串,只有原始字符串会发送它。有人知道为什么会这样吗?
答案 0 :(得分:1)
您可以使用JavaScript提交表单:
请注意:函数名称前应带有 function 关键字。
document.getElementById('myForm').onsubmit = myFunction;
function myFunction(){
var x = document.getElementById("myID").value;
document.getElementById("myID").value = x + "myString";
}
<form id="myForm" action="myURL" method="POST">
<input id="myID" value="someValue" />
<button type="submit">Press Me!</button>
</form>
答案 1 :(得分:0)
您可以在提交按钮的onclick
事件中进行更改,而不是onsubmit
。
<form action="myURL" id="myForm" method="POST">
<input id="myID" value="someValue" />
<button type="submit" onclick="myFunction(event)">Press Me!</button>
</form>
<script>
myFunction(event)
{
event.preventDefault();
var x = document.getElementById("myID").value;
document.getElementById("myID").value = x + "myString";
document.getElementById("myForm").submit();
}
</script>
答案 2 :(得分:0)
您需要在提交事件处理程序中使用方括号(即onsubmit="functionToCall()"
而不是onsubmit="functionToCall"
来调用该函数。
您需要在函数名称前面添加function关键字:您将编写function functionName(){}
而不是functionName(){}
。
您应该将变量x设置为等于输入元素,而不是输入元素的值,这样就无需再次查询DOM。
<form action="myURL" onsubmit="myFunction()" method="POST">
<input id="myID" value="someValue" />
<button type="submit">Press Me!</button>
</form>
<script>
function myFunction()
{
event.preventDefault();//for demonstrative purposes
var x = document.getElementById("myID");
x.value += "myString";
}
</script>