jquery 自动补全多余空格

发布于 2024-10-12 09:58:37 字数 1479 浏览 0 评论 0原文

我在 jsp 文件中得到了这个循环,

<%    for (int i = 0; i < length; i++)
                 {
                    for( int j = 0; j < width; j++)
                    {
                        element = MAP_LIST[j][i];
                        if (element.equals("A"))
                        {} else if (j == width-1 && i == length-1){
                        %>
                        <%=element%><%}
                        else
                        {
                        %>
                        <%=element%>,<%}
                    }
                 } 
%>

它通过使用 jquery 从 oracle 数据库中为我的自动完成文本字段获取 csv 列表,

function Mapsheets(type,nomos)
{   
    $(function() {
        var f_data;

        $.get('/gaec_web/MapSheets.jsp',{'datasrc-select':datasource, 'type_1': type, 'nomos': nomos}, function(data){
            f_data = data.split(',');
        $( "#fx_no" ).autocomplete({
            source: f_data,
            minLength: 2
        });
        });
            });
}

一切都像魅力一样工作,我输入前 2 个字符,自动完成弹出窗口按预期显示所有内容当我尝试选择一个值时,我得到的值在尾部有几个(5)额外的空格。然后,当它提交时,它会失败,因为它与有问题的地图名称不匹配。结果看起来像这样

"     320-197"

那么是什么原因造成的呢?如果我单独运行jsp页面也能得到正常的结果,例如

372-146, 376-146, 372-149, 368-149, 376-149, 380-149, 380-152, 376-152, 372-152, 368-152, 368-155, 376-155, 372-155, 380-155, 368-158, 380-158, 376-158, 372-158

提前致谢

I got this loop in a jsp file

<%    for (int i = 0; i < length; i++)
                 {
                    for( int j = 0; j < width; j++)
                    {
                        element = MAP_LIST[j][i];
                        if (element.equals("A"))
                        {} else if (j == width-1 && i == length-1){
                        %>
                        <%=element%><%}
                        else
                        {
                        %>
                        <%=element%>,<%}
                    }
                 } 
%>

which gets me a csv list from an oracle database for my autocomplete text field by using jquery

function Mapsheets(type,nomos)
{   
    $(function() {
        var f_data;

        $.get('/gaec_web/MapSheets.jsp',{'datasrc-select':datasource, 'type_1': type, 'nomos': nomos}, function(data){
            f_data = data.split(',');
        $( "#fx_no" ).autocomplete({
            source: f_data,
            minLength: 2
        });
        });
            });
}

everything works like a charm, i type the first 2 chars and the autocomplete pops up displays every thing as it was supposed to and when I try to pick a value i get the value with several (5) extra spaces in the tail. And then when it gets submitted it fails cause it doesnt match the mapname in question. the results look like this

"     320-197"

So what is causing this? if i run the jsp page alone also get normal results for example

372-146, 376-146, 372-149, 368-149, 376-149, 380-149, 380-152, 376-152, 372-152, 368-152, 368-155, 376-155, 372-155, 380-155, 368-158, 380-158, 376-158, 372-158

thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖伴 2024-10-19 09:58:37

我从未使用过 jsp,但我猜想额外空格的原因是您在 for 循环内使用的缩进,

                   {} else if (j == width-1 && i == length-1){
                    %>
#there are extra space<%=element%><%}
                    else
                    {
                    %>
                    <%=element%>,<%}
                }

您应该以这种方式放置代码,也许空格会被忽略:

                   {} else if (j == width-1 && i == length-1){
                    %><%=element%><%}
                    else
                    {
                    %><%=element%>,<%}
                }

I never used jsp, but I guess that the reason of the extra spaces is the indentation you use inside the for loop

                   {} else if (j == width-1 && i == length-1){
                    %>
#there are extra space<%=element%><%}
                    else
                    {
                    %>
                    <%=element%>,<%}
                }

you should put the code in this way and maybe the spaces will be ignored:

                   {} else if (j == width-1 && i == length-1){
                    %><%=element%><%}
                    else
                    {
                    %><%=element%>,<%}
                }
離殇 2024-10-19 09:58:37

我也没用过JSP。但是将数组输出为 json 编码是否是一个可行的选择? jQuery 可以轻松解析作为 json_encoded 传递的数组。

我在 google 上搜索了 JSP 的 json_encode 等效项,它给了我这个链接。
相当于 json_encode (在 PHP 中)的 JSP 是什么?

在你的 javascript 中,你可以像以前一样使用 $.getJSON(url, [data], [callback]) 。
除了现在之外,回调函数的 data 参数保存一个 json 解码的数组,因此是之前的普通数组,但是是 javascript 形式。

只需将该数据变量提供给源即可自动完成。

I've never used JSP either. but would it be a viable option for you to output your array as json encoded? jQuery can easily parse an array passed as json_encoded.

I googled for json_encode equivalent for JSP and it gave me this link.
What is the JSP equivalent to json_encode ( in PHP )?

in your javascript you then use $.getJSON(url, [data], [callback]) just like you used to do.
except for now, the data parameter of the callback function holds a json-decoded array, ergo your previous normal array, but then in javascript-form.

Just provide that data var to the source for the autocomplete.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文