ReferenceError:左侧无效赋值

时间:2012-11-10 18:38:19

标签: javascript jquery fullcalendar

下一个代码有什么问题?它位于$ dialogContent.dialog

buttons: {
                       save : function() {

                          calEvent.start = new Date(startdateField+' '+starttimeField.val());  // 11/25/2012 15:00
                          calEvent.end = new Date(endField.val());  
                          if($('#script_all_stores_false').attr('checked')) { /*clearChildren(document.getElementById('days'));*/ frequency_as_dayField.val() = 99; }
                        // если не заполнено поле recurring_start, то заполнить его текущей датой начала события
                          if(recurring_startField.val()!='') calEvent.recurring_start = new Date(recurring_startField.val()); else calEvent.recurring_start = new Date(startdateField+' '+starttimeField.val());
                        // если не заполнено поле recurring_end, то заполнить его текущей датой + 1год (логика: уроки вряд ли держатся в расписании больше года, когда преподаватель определится до какого числа будут занятия с этой группой, он заполнит нужной датой)  
                          var startDate = new Date(startdateField+' '+starttimeField.val()); //calEvent.recurring_start;??
                            if(recurring_endField.val()!='') calEvent.recurring_end = new Date(recurring_endField.val());
                            else if(recurring_endField.val()=='' && $("#script_all_stores_true").is(":checked")/*&& recurring_startField.val()!=''*/) calEvent.recurring_end = new Date( startDate.setDate(startDate.getDate() + 365) );
                            calEvent.frequency_as_day = frequency_as_dayField.val();
var my_query_str = ''; 
                            $dialogContent.find("input[type='checkbox'][name='days']").each( function() { 
                                if(this.checked) { my_query_str += "&bookArray[]=" + 1; }
                                else { my_query_str += "&bookArray[]=" + 0; }
                            });

                          calEvent.days = my_query_str; 
                          calEvent.title = titleField.val();
                          calEvent.body = bodyField.val();
                          calEvent.teacher_id = teacherField.val();  
    ...

Firebug说:

ReferenceError: invalid assignment left-hand side
[Break On This Error]   

...e').attr('checked')) { /*clearChildren(document.getElementById('days'));*/ frequ...

如果我将frequency_as_dayField.val() = 99;更改为var frequency_as_dayField = 99;

萤火虫说:

TypeError: frequency_as_dayField.val is not a function
[Break On This Error]   

calEvent.frequency_as_day = frequency_as_dayField.val();

我的javascript很糟糕,抱歉。请帮忙(

1 个答案:

答案 0 :(得分:12)

您需要将值传递给.val(),而不是为返回的值分配值。

if($('#script_all_stores_false').attr('checked')) {  
   /*clearChildren(document.getElementById('days'));*/ 
   frequency_as_dayField.val(99) /* = 99*/ ; 
         // good-------------^       ^-------------bad
}