更改输入值然后在JavaScript中提交表单

时间:2011-08-02 12:39:18

标签: javascript html forms onclick submit

我目前正在制作基本表格。我想用这个表单做的是当你点击提交/按钮来首先改变一个字段的值然后像往常一样提交表单。这看起来有点像这样:

<form name="myform" id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="DoSubmit()" />
</form>

这就是我对JavaScript的了解。它将“myinput”的值更改为1,但不提交表单。我真的是一个JavaScript noobie,所以请原谅我,如果这只是一个太简单的问题,但我只是没有真正了解它。

function DoSubmit(){
  document.myform.myinput.value = '1';
  document.getElementById("myform").submit();
}

8 个答案:

答案 0 :(得分:57)

你可以这样做:

<form name="myform" action="action.php" onsubmit="DoSubmit();">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" />
</form>

然后修改你的DoSubmit函数,只返回true,表示“没关系,现在你可以提交表单”到浏览器:

function DoSubmit(){
  document.myform.myinput.value = '1';
  return true;
}

编辑:我也要小心在提交按钮上使用onclick事件;事件的顺序不是很明显,如果用户提交,例如在文本框中点击返回,则不会调用您的回调。

答案 1 :(得分:6)

document.getElementById("myform").submit();

这不起作用,因为您的表单标签没有ID。

像这样改变它应该有效:

<form name="myform" id="myform" action="action.php">

答案 2 :(得分:5)

没有。当您的输入类型是提交时,您应该在标记中声明onsubmit事件,然后执行所需的更改。这意味着,在表单标记中定义了onsubmit

否则将输入类型更改为按钮,然后为该按钮定义onclick事件。

答案 3 :(得分:5)

这里是简单的代码,你必须为你输入一个id输入,这里称之为'myInput':

      var myform = document.getElementById('myform');
      myform.onsubmit = function(){ 
                    document.getElementById('myInput').value = '1';
                    myform.submit();
                  };

答案 4 :(得分:2)

您尝试访问基于name属性的元素,该属性适用于回发到服务器但javascript响应id属性。添加与id具有相同值的name,并且一切正常。

<form name="myform" id="myform" action="action.php">
  <input type="hidden" name="myinput" id="myinput" value="0" />
  <input type="text" name="message" id="message" value="" />
  <input type="submit" name="submit" id="submit" onclick="DoSubmit()" />
</form>

function DoSubmit(){
  document.getElementById("myinput").value = '1';
  return true;
}

答案 5 :(得分:1)

我的问题原来是我分配为document.getElementById("myinput").Value = '1';

注意资本V的价值?一旦我把它改成小盒子即;价值,数据开始发布。很奇怪因为它没有给出任何Javascript错误

答案 6 :(得分:0)

您可以使用 onchange 活动

<form name="myform" id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" onchange="this.form.submit()"/>
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="DoSubmit()" />
</form>

答案 7 :(得分:0)

这可能会对您有所帮助。

您的HTML

<form id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="save()" />
</form>

您的脚本

    <script>
        function save(){
            $('#myinput').val('1');
            $('#form').submit();
        }
    </script>