js onchange 提交默认选择选项

Posted

技术标签:

【中文标题】js onchange 提交默认选择选项【英文标题】:js onchange submits default select option 【发布时间】:2017-07-20 15:36:30 【问题描述】:

我是一个 js bumbler,所以这不可避免地是一个小错误。我想更改表单中的选择项以触发表单提交(参见下面的代码 sn-p)。

发生的情况是表单正确提交到正确的 php 页面,但 Select 元素值默认为第一个选项,而不管选择了哪个选项。我哪里傻了?罗恩

<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

【问题讨论】:

onclick 改为onchange 重复***.com/questions/7231157/… How to submit form on change of dropdown list?的可能重复 已更改代码以反映“onchange”,但问题仍然存在 谢谢。所有这些 poss 骗子都展示了如何提交,但这不是问题 - 这部分有效。这些问题是元素值(例如在 PHP $_POSTS['rotate'] 中)总是包含第一个选项的值(即'Rotate 0'),即使更改操作选择了不同的选项。罗恩 【参考方案1】:

这是因为您使用的是onclick,它会在单击选择后立即提交表单。你想要onchange

【讨论】:

谢谢。能理解你为什么这么说。但是 onchange 也有同样的问题(检查缓存已刷新) - 事实上我最初就是这样,但为了以防万一,我尝试了 onclick。【参考方案2】:

问题已解决 - 我在(长)表单底部重复了选择元素,因此在页面上定义了两次相同的元素 ID;一个诺诺。告诉过你我是个笨蛋。谢谢大家

【讨论】:

这不可能是这个问题的原因。 javascript 不使用任何 ID。 谢谢昆汀。所以我想问题是,鉴于选择元素在页面上重复,每次都使用相同的名称,浏览器在页面上发布了最后一次迭代的设置,而我正在更改第一次。顺便问一下,id 是干什么用的?我以为是javascript使用的元素的名称。

以上是关于js onchange 提交默认选择选项的主要内容,如果未能解决你的问题,请参考以下文章

如何避免vue中api调用的onchange?

图片上传预览

如何在UnChecked时触发单选按钮的OnChange事件

通过 Ajax 在 React 中提交表单

html select 默认不选择

Jquery表单onchange选择值改变