1

我有一个非常特殊的问题,我无法解决它。我的输入元素上的斜杠消失了,尽管我确定(仔细检查)php 确实包含它们。当 jquery 将此数据附加到 html 树时,会发生一些事情。

问题可以在这里看到:http: //gamoicani.es/logo/如果你点击 logo 并看到输入 html,你会看到结尾没有斜杠。

但是在php中我有这个:

<input type="text" name="guesslogo" data-lang="<?php echo $row['logo_lang']; ?>" />

我什至尝试过<input></input>,但结果是一样的。

我还在这些输入上禁用了旋钮和 kbd jquery 插件,但有些不对劲,它根本不起作用。

我检查了我的ajax调用:

function create_views(level) {
        $.ajax({
            url: "actions.php",
            type: "GET",
            data: "show_level=" + level,
            cache: false,
            success: function (data){
                views[level] = '<li data-level="' + level + '">' + data + '</li>';

                //Count completed tasks
                completed_calls++;

                //if last level is loaded-called append and activate slider
                if (levels == completed_calls) {
                    //append views to container
                    console.dir($(".slides_container").append(views.join(' ')));
                    //activate slider
                    unislider = $(".slides_container").dpUniSlider({
                        //loop: false,
                        draggable: false
                    });
                    //Activate Georgian keyboard for some logos
                    $("input[data-lang=ge]").GeoKBD();

                    //Activate progress bar
                    update_level_progress_bar();
                }
            }
        });
}

是否在视图上使用了 console.dir 和 / 是否存在!所以它一定是在追加过程中出了点问题......我没有想法去检查......

为什么我关心斜杠?

on.keypress 仅适用于 html 中的第一次输入

//check answer on ENTER keyboard press
$("body").on("keypress", "input:text[name=guesslogo]", function(e){
    if (e.keyCode == 13) {  
        $(this).siblings(".check").trigger("click");
    }
});

这不能正常工作!

任何帮助表示赞赏!

4

3 回答 3

2

如前所述,它与斜线无关。

更改代码以使用文档而不是带有 keydown 的正文

$(document).on("keydown","input[name='guesslogo']",function(e){
    if (e.keyCode == 13) {  
        $(this).siblings(".check").trigger("click");
    }
});

您的代码将适用于此更改。

于 2013-04-17T15:31:57.110 回答
1

您不需要在输入标签上使用右斜杠。它们不包含其中的项目,并表示为单个标签。

这:

我什至尝试过<input></input>,但结果是一样的。

实际上是完全不正确的。输入永远没有结束标签

另一方面,jQuery 不会完全附加您发布的内容,它会对其进行解析,然后将其添加为语义正确的 HTML。

例如$().append,将为 、 和 附加相同"<div>""<div/>"内容"<div></div>"

即使您在源代码中明确键入,Chrome 开发工具等工具也会显示不带 / 的输入。

尝试在此处检查输入:http: //jsfiddle.net/f7USH/,您会看到该元素被添加为带有斜杠的输入,但在 devtools 中没有出现。

于 2013-04-17T15:14:01.987 回答
1

现代 HTML 中的自闭合标记语法对于沉迷于 XML 的人来说只是语法糖。

当您使用 DOM 查看器查看文档时,您会看到 DOM 到 HTML 的序列化(不是原始源代码)。

由于斜线完全是可选的,因此您的查看器不会呈现它。

为什么我关心斜杠?

该代码不起作用与斜杠无关。

于 2013-04-17T15:35:26.883 回答