【问题标题】:js onchange submits default select optionjs onchange 提交默认选择选项
【发布时间】: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
  • 已更改代码以反映“onchange”,但问题仍然存在
  • 谢谢。所有这些 poss 骗子都展示了如何提交,但这不是问题 - 这部分有效。这些问题是元素值(例如在 PHP $_POSTS['rotate'] 中)总是包含第一个选项的值(即'Rotate 0'),即使更改操作选择了不同的选项。罗恩

标签: javascript forms submit onchange


【解决方案1】:

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

【讨论】:

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

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

【讨论】:

  • 这不可能是这个问题的原因。 Javascript 不使用任何 ID。
  • 谢谢昆汀。所以我想问题是,鉴于选择元素在页面上重复,每次都使用相同的名称,浏览器在页面上发布了最后一次迭代的设置,而我正在更改第一次。顺便问一下,id 是干什么用的?我以为是javascript使用的元素的名称。
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 2016-12-07
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多