javascript 参考错误:左侧无效分配
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13324930/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ReferenceError: invalid assignment left-hand side
提问by almix
What's wrong in the next code? It is inside $dialogContent.dialog
下一段代码有什么问题?它在 $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 says:
萤火虫 说:
ReferenceError: invalid assignment left-hand side
[Break On This Error]
...e').attr('checked')) { /*clearChildren(document.getElementById('days'));*/ frequ...
if I change frequency_as_dayField.val() = 99;
to var frequency_as_dayField = 99;
如果我frequency_as_dayField.val() = 99;
改为var frequency_as_dayField = 99;
firebug says:
firebug 说:
TypeError: frequency_as_dayField.val is not a function
[Break On This Error]
calEvent.frequency_as_day = frequency_as_dayField.val();
I'm bad in javascript, sorry. Please, help(
我在 javascript 方面很差,对不起。请帮忙(
回答by I Hate Lazy
You need to pass a value to .val()
, not assign a value to whatever is returned.
您需要将值传递给.val()
,而不是为返回的任何值分配值。
if($('#script_all_stores_false').attr('checked')) {
/*clearChildren(document.getElementById('days'));*/
frequency_as_dayField.val(99) /* = 99*/ ;
// good-------------^ ^-------------bad
}