在date_select元素上调用.val()返回undefined?

时间:2016-02-04 17:29:07

标签: javascript jquery ruby-on-rails ruby

我试图从date_select中获取所选日期:

    <%= form_for(@newevent) do |f| %>

        <%= f.date_select :day, { id: "date-select"} %>

        <button id="check-button" type="button">Check</button>

<% end %>

使用JQuery / Javascript:

$(document).on('click', "#check-button", function(){

var selectedDate = $("#date-select").val();

alert(selectedDate);

var checkList = []; //creates array to store customer ids
$("#check-list li input").each(function(){ //for each listed colleague...
    if( $(this).is(":checked")){ //if check-box is ticked
        checkList.push($(this).val()); //add id to list
    }
});

$.ajax({
        url: '/events/check',
        data: {checkList: checkList , selected_date: selectedDate },
        method: "POST"
    }
);

});

这里的参考是我的迁移文件中定义:day的地方:

class CreateEvents < ActiveRecord::Migration
  def change
    create_table :events do |t|

      t.timestamps
      t.references :calendar, foreign_key: true
      ...

      t.date :day

      ...

    end

但是,在警告时,返回的值是&#34;未定义&#34;。为什么会这样?我希望它返回YYYY-MM-DD形式的值。抱歉,如果这是显而易见的,但我是编程新手并且似乎无法自己解决这个问题

1 个答案:

答案 0 :(得分:0)

Date_select,根据rails api“返回一组选择标记(一个用于年,月和日)”。你的javascript将不得不处理三个单独的选择并从中构建一个日期。查看生成的HTML以获取ID。