2016-02-04 140 views
0

我试图获得从date_select所选日期:调用.val()on date_select元素返回undefined?

<%= 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 

然而,在警报的返回值为“undefined”。这是为什么发生?我希望它能以YYYY-MM-DD的形式返回一个值。道歉,如果这是显而易见的,但我是编程新手,似乎无法自己修复这一个

+1

可能是因为运行该代码时元素不存在。请显示完整的上下文。这段代码不足以排除 – charlietfl

+0

的问题#charlietfl ok我将编辑我的问题 –

+0

该代码使得它看起来像具有相同“日期选择”标识的多个dom元素。 – Luke3butler

回答

0

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

+0

好吧,你知道JS/JQuery中的任何有用的方法可以帮助吗? –

+0

@SCraig这里没有JS/JQuery方法。使用Chrome/Firefox开发人员工具来查看源代码,并使用控制台查看$(“#date-select”)实际包含的内容。 – Luke3butler