改变input的值然后在JavaScript中提交表单

我目前正在做一个基本的表单。 我想用这种forms做的是,当你点击提交/button来首先改变一个字段的值,然后像平常一样提交表单。 这一切看起来有点像这样:

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

你可以这样做,而不是:

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

编辑:我也会小心使用提交button上的onclick事件; 事件的顺序并不是很明显,如果用户通过在文本框中按回车来提交,则不会调用callback。

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

这不会工作,因为你的表单标签没有身份证。

像这样改变它,它应该工作:

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

这里是简单的代码,你必须在这里设置一个IDinput在这里称之为'myInput':

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

不。当你的inputtypes被提交时,你应该在标记中声明一个onsubmit事件,然后做你想要的更改。 意思是,在表单标签中定义一个onsubmit

否则,将inputtypes更改为一个button,然后为该button定义一个onclick事件。

您试图访问基于name属性的元素,该元素用于向服务器回传,但JavaScript响应了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; } 

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

注意资本V的价值? 一旦我把它改为小案例即; 价值,数据开始张贴。 奇怪,因为它不给任何Javascript错误以及

你可以使用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>