1

我在 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 中逐步完成,但没有任何运气。

谢谢!

4

1 回答 1

0

我最终只是在文本字符串上使用正则表达式进行验证,以捕获与有效字符不匹配的任何内容。这处理了冒号和任何其他字符,因此 misaecko 是正确的,它需要客户端验证。这似乎解决了这个问题。谢谢您的意见!

于 2012-08-28T21:45:10.097 回答