我收到此错误消息:
未捕获的ReferenceError:分配中的左侧无效 script.js:37 visaType script.js:37(匿名函数)
这是代码:
的script.js:
function visaType() {
var visaOld = $('#inputVisaOld').val();
var visaNew = $('#inputVisaNew').val();
if (visaOld = 'Studying Mandarin Chinese' && visaNew = 'Foreign Student') {
// the error message points here
return '<div class="alert alert-info" Documents for FR -> FS</div>';
} else if (visaOld = 'Tourism' && visaNew = 'Joining Taiwananese Family') {
return '<div class="alert alert-info" Documents for P -> TS</div>';
} else {
return '<div class="alert alert-error>Not allowed to change</div>';
}
}
HTML:
<div class="form-group">
<label for="inputVisa">Current Visa <span class="text-muted">(Optional)</span></label>
<input type="text" class="form-control" id="inputVisaOld" placeholder="Enter Current Visa">
</div>
<div class="form-group">
<label for="inputVisa">New Visa</label>
<input type="text" class="form-control" id="inputVisaNew" placeholder="Enter Visa to Apply">
</div>
可能是什么问题?
答案 0 :(得分:2)
visaOld = 'Studying Mandarin Chinese'
有=
个符号,这意味着您应该在比较时指定:visaOld === 'Studying Mandarin Chinese'
这是在一些地方,而不仅仅是那个地方。
答案 1 :(得分:1)
Javascript中的比较运算符为==
,而不是=
。所以它应该是:
if (visaOld == 'Studying Mandarin Chinese' && visaNew == 'Foreign Student') {
// the error message points here
return '<div class="alert alert-info" Documents for FR -> FS</div>';
} else if (visaOld == 'Tourism' && visaNew == 'Joining Taiwananese Family') {
return '<div class="alert alert-info" Documents for P -> TS</div>';
} else {
return '<div class="alert alert-error>Not allowed to change</div>';
}
=
用于变量赋值。
答案 2 :(得分:1)
编程中最古老的错误之一。你的作业应该是比较。使用==
代替=
,它会起作用。
为什么当前代码有语法错误:
分配(=
)位于运算符优先级&&
之后。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence所以你的陈述正在评估如下
if (visaOld = ('Studying Mandarin Chinese' && visaNew) = 'Foreign Student') {
使用括号强制你想要的东西
if ((visaOld = 'Studying Mandarin Chinese') && (visaNew = 'Foreign Student')) {
但请记住,不建议在if语句中进行分配,也不建议您使用。