JS switch语句里面的函数

时间:2015-10-14 21:21:35

标签: javascript jquery

我遇到了问题。我看到了一个可能的解决方案,但它对我不起作用。我需要在函数中放置switch语句,因为我有很多要更改的情况。

切换功能:

var filter = function(value) {
    switch(typeof value) {
    case 'number is required':
        value = 'Number field is required!';
        break;
    }
}

我在AJAX中调用此函数

$.map(response.errors, function(e){
     filter(e) // I tried this and
     filter = e;
     // my code to put here in DIV.  
 })

错误消息返回我想要更改的案例。例如:<div class="alert alert-success">number is required</div>;

1 个答案:

答案 0 :(得分:0)

我不完全确定你在做什么,但我怀疑它是这样的:

function filter(value) {
    switch (value) {
    case 'number is required':
        value = 'Number field is required';
        break;
    case 'something else':
        value = 'Some other message';
        break;
    // More cases here
    }
    return value;
}

$.each(response.errors, function(i, e) {
    msg = filter(e);
    $("#errors").append("<div class='error-msg'>" + msg + "</div>");
});

如果filter函数与其中一个案例匹配,则返回替换消息。调用者将此返回值赋给变量,并将其放入DIV。

您可以将对象用作字典,而不是case,这是我首选的方法:

var translations = {
    'number is required': 'Number field is required',
    'something else': 'Some other message',
    // more cases here
};
function filter(value) {
    return translations[value] || value;
}