coffeescript .on“更改”重复的ajax调用

时间:2017-09-15 14:05:17

标签: javascript jquery ruby-on-rails ajax coffeescript

我使用.on“change”事件来更新名为“form_name”的文本字段中的记录

此“form_name”文本字段的行为类似于搜索框以及下拉列表,如下图所示

text field image

当我输入一个form_name时,它会搜索一个表单名称,然后我选择表单记录的名称将被保存两次。

coffeescript - >

$(document).on "change", ".form-requirement-name", (e) ->
self = $(this)
id = self.data("id")
value = self.val()
request = $.post("/programs/#{id}/form_requirement_name", {"form_name": value})
request.done (data, textStatus, jqXHR) ->
  toastr.success('Form action updated.')

form_requirement_name.controller.rb

def form_requirement_name
form_name = params[:form_name]
if is_temp?(params[:id])
  session[:temp_form_list_rule][:form_id] = form_name
  save_temp_form_list_rule
  respond_to do |format|
    if @form_list_rule.form_id.present?
      format.json {render json: @form_list_rule}
    else
      format.json {head :ok}
    end
  end
end

请帮帮我。

2 个答案:

答案 0 :(得分:0)

尝试在ajax调用之前添加以下内容:

e.preventDefault();
e.stopPropagation();

答案 1 :(得分:0)

这是因为您应该绑定onkeyuponkeydown事件而不是change