一个 F.Select 是否在同一表单中影响另一个?(不需要)
one f.select is affecting another within the same form? (unwanted)
我在添加新的 html 元素时遇到问题,例如:
<%= f.date_select :date, { id: "date-select"} %>
它会影响我已经存在的集合选择:
<%= f.collection_select :id,
Customer.where(business_id: current_customer.business_id),
:id,
:full_name,
{ prompt: 'Select' },
{ id: "colleague-select", onChange: "renderColCal(this)" } %>
通常,客户可以从列表中选择另一个客户,触发 ajax 调用以使用所选客户的id
呈现所选客户的日历。这本身工作正常。
但是,当我在窗体中进一步输入这个新的date_select
选项,然后尝试使用 collection_select
时,ajax 调用无法完成,因为它试图查找id
等于在另一个选择框中选择的日期年份的客户!!
下面是一个示例。我在date_select
中选择了年份为"2012"的日期。然后我在collection_select
中选择一个客户,并在控制台中收到这个:
Started GET "/calendars/calendar_change?colleagueID=2012" for 127.0.0.1 at 2016-02-01 11:38:01 +0000
Processing by CalendarsController#calendar_change as */*
Parameters: {"colleagueID"=>"2012"}
Customer Load (0.0ms) SELECT "customers".* FROM "customers" WHERE "customers"."id" = ? ORDER BY last_name ASC LIMIT 1 [["id", 2012]]
Completed 404 Not Found in 5ms
ActiveRecord::RecordNotFound (Couldn't find Customer with 'id'=2012):
app/controllers/calendars_controller.rb:19:in `calendar_change'
这是我的JavaScript被调用:
function renderColCal(select){
var colleagueID = select.value ;
$.ajax({
url: '/calendars/calendar_change',
data:{
colleagueID: $('select').val()
}
}
)
}
为什么会这样?我该如何解决这个问题?谢谢!
问题是你的javascript。您提交的数据是
data:{
colleagueID: $('select').val()
}
提交页面上第一个选择的值。如果你想走这条路,你必须使你传递给 $() 的选择器更具选择性(例如,使用选择框的 id)。
您实际上是在事件处理程序中较早地从选择框中检索值,但由于某种原因您没有使用它。这可能比使用 jquery 在选择元素已经传递给您时查找该元素更不容易出错。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 使用javascript将动态表从一个html页面打印到另一个html页
- Javascript:当同时按下两个键时,留下其中一个也会影响另一个的听众
- D3-使用一个SVG点击事件来影响另一个
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 一个 F.Select 是否在同一表单中影响另一个?(不需要)
- 影响当前外部元素中的另一个元素
- 将鼠标悬停在 ol 上并影响具有多个版本的同一页面上的另一个特定元素
- 在不影响另一个页面的情况下更改一个页面的变量
- 我的Javascript函数受到另一个已经定义的JS函数的影响
- 将鼠标悬停在链接上以影响另一个链接
- 在AngularJS中,将一个变量初始化为另一个变量,而不会在以后对前者的修改影响后者
- jQuery——一个表单影响另一个表单
- 复制Angular响应数据,这样对其中一个的更改不会影响另一个
- 如何制作该标签的另一个图像(通过拖动),而不影响原始图像
- 如果我将github repo移动到另一个用户,这会对npm上的包产生什么影响
- 滚动一个项目会影响引导程序转盘中的另一个项目
- onKeyUp,一个输入字段通过jQuery影响另一个
- 改变一个对象的属性也会影响另一个对象