2017-03-01 148 views
1

我是一个js不温不火的人,所以这是不可避免的一个微不足道的错误。我想更改我的表单中的选择项来触发表单提交(请参阅下面的代码片段)。js onchange提交默认选择选项

会发生什么情况是表单被正确提交到正确的php页面,但Select元素值默认为第一个选项,而不管选择了哪个选项。我愚蠢的地方在哪里? Ron

<input type='submit' name='buttons' value='Delete'> 
<input type='submit' name='buttons' value='Copy'> 
<input type='submit' name='buttons' value='Move'> 
<select name='rotate' id='rotate' onchange='this.form.submit()'> 
<option value='Rotate 0'>Select from list below to Rotate</option> 
<option value='Rotate 3'>Rotate by 90 CW</option> 
<option value='Rotate 2'>Rotate by 180 CW</option> 
<option value='Rotate 1'>Rotate by 270 CW</option> 
</select> 
.....other form elements 
+2

'onclick' change to'onchange' – Jai

+0

duplicate of http://stackoverflow.com/questions/7231157/how-to-submit-form-on-change-of-dropdown-list – mplungjan

+0

可能重复的[如何提交表单更改下拉列表?](http://stackoverflow.com/questions/7231157/how-to-submit-form-on-change-of-dropdown-list) – Bugs

回答

0

这是因为您使用的是onclick,只要单击select就会提交表单。你想要onchange

+0

谢谢。可以理解你为什么这么说。然而,与onchange相同的问题(检查缓存刷新) - 事实上,这是我最初的方式,但尝试onclick以防万一。 – Ron

0

问题解决了 - 我在(长)形式底部重复了select元素,所以在页面上定义了两次相同的元素ID;一个nono。告诉你我是个笨蛋。谢谢全部

+0

这不能成为这个问题的原因。 Javascript不会使用任何ID。 – Quentin

+0

Thx Quentin。所以我猜这个问题是因为在页面上重复了选择元素,每次都使用相同的名称,浏览器在页面上发布了最后一次迭代的设置,而我正在更改第一个迭代。顺便说一下,那么这个ID是什么?我认为这是javascript使用的元素的名称。 – Ron