我是CoffeeScript的新手,我不确定为什么这段代码没有正确评估。我收到了SyntaxError:意外的ELSE。我要做的是根据rule_log_type下拉列表的选择动态更新rule_severity下拉列表。
jQuery ->
sev = $('#rule_severity').html()
$('#rule_log_type').change ->
logtype = $('#rule_log_type :selected').text()
if (logtype == 'Syslog')
$('#rule_severity')
.find('option')
.remove()
.end()
.append('<option value="Emergency">Emergency</option>')
.append('<option value="Alert">Alert</option>')
.append('<option value="Critical">Critical</option>')
.append('<option value="Error">Error</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Notice">Notice</option>')
.append('<option value="Information">Information</option>')
.val('Information')
else if (logtype == 'Microsoft Windows')
$('#rule_severity')
.find('option')
.remove()
.end()
.append('<option value="Critical">Critical</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Information">Information</option>')
.val('Information')
答案 0 :(得分:1)
应该是else if
而不是else
。
else if logtype == 'Microsoft Windows'
答案 1 :(得分:1)
工作代码。我认为缩进在CoffeeScript中非常关键。
JQuery ->
sev = $('#rule_severity').html()
$('#rule_log_type').change ->
logtype = $('#rule_log_type :selected').text()
switch logtype
when 'Syslog'
console.log(logtype)
$('#rule_severity')
.find('option')
.remove()
.end()
.append('<option value="Emergency">Emergency</option>')
.append('<option value="Alert">Alert</option>')
.append('<option value="Critical">Critical</option>')
.append('<option value="Error">Error</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Notice">Notice</option>')
.append('<option value="Information">Information</option>')
.val('Information')
when 'Microsoft Windows'
console.log(logtype)
$('#rule_severity')
.find('option')
.remove()
.end()
.append('<option value="Critical">Critical</option>')
.append('<option value="Warning">Warning</option>')
.append('<option value="Information">Information</option>')
.val('Information')
答案 2 :(得分:0)
CoffeeScript使用缩进来标识函数,控制块,参数列表等的范围。粘贴的代码除了将空函数传递给jQuery
(与{{ 1}}。以下代码更有可能是$(document).ready
处理程序的所有内容,因为只有在准备就绪时才能操作DOM内容。
document.ready