在使用Javascript或HTML提交输入值之前,先对其进行修改

时间:2018-12-06 04:02:13

标签: javascript html

因此,从本质上讲,我有一个输入,我想在用户提交它之前修改该值。我要做的就是在此输入值的末尾添加一个字符串。我以为会是这样:

<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>

但是,提交表单时,不会发送附加的字符串,只有原始字符串会发送它。有人知道为什么会这样吗?

3 个答案:

答案 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>