EXTJS方法错误输出以冒号开头的字符串

时间:2012-08-23 16:05:36

标签: asp.net-mvc-3 extjs

我在ASP.NET MVC应用程序之上继承了一些EXTJS代码,并且我正在尝试跟踪Ext.msg.prompt框在前面有一个带有“:”字符的字符串时发生的错误它。这是发生错误的方法:

  var casePrompt = function() {
    Ext.Msg.prompt("Numb", "", function(btn, text) {
        if (btn == "ok") {
            numbID = text.trim().toUpperCase();
            Ext.Ajax.request({
                url: "/location/method/" + numbID,
                method: "GET",
                callback: function(options, success, response) {
                    var reply = Ext.decode(response.responseText);
                    if (success) {
                        listOpen(reply.Data);
                    } else {
                        errorMsg(reply, function(button, text) { numbID = ""; });
                    }
                }
            });
        }
    });
};

如果一个数字按预期进入方框,一切正常。但是,如果有人输入相同的数字或任何有效数字,前面带有“:”,则该方法在返回控制器之前就会出错。该错误仅显示“Microsoft JScript编译错误:语法错误”,并在ext-all-debug.js中突出显示以下代码:

doDecode = function(json){
     return eval("(" + json + ;)');
}

有没有人见过这个并知道一种方法来捕捉这个错误?我试图在没有运气的情况下在VS2010中逐步完成此操作。

谢谢!

1 个答案:

答案 0 :(得分:0)

我最后只是在文本字符串上使用正则表达式进行验证,以捕获与有效字符不匹配的任何内容。这照顾了冒号和任何其他角色,所以mistaecko是正确的,它需要客户端验证。这似乎解决了这个问题。感谢您的评论!