0

我的 jquery 遇到了一些问题,我真的无法让它工作。

我正在进行一项调查,每个问题中的最后一个单选选项都是其他选项,因此用户可以输入自定义文本。我希望隐藏文本框,直到或如果选中收音机并且文本框应该是对等的。

我试过这个:

    $(document).ready(function () {
    $("#custom_form_custom_field_2_block").hide();

    $("input:radio[name=custom_form[custom_field_1]]").change(function () {
        if (this.value == "jeg har et helt 4. forslag") {
            $("#custom_form_custom_field_2_block").fadeIn();
        } else {
            $("#custom_form_custom_field_2_block").fadeOut();
        }

    });

    $("#custom_form_custom_field_2_block").focusout(function () {
        $("input:radio[name=Title]:checked").attr('value', $("#custom_form_custom_field_2_block").val());
    });
});

我在这里有一个指向 mt fiddle 的链接:JSFiddle

希望你能提供帮助,问候托马斯

4

1 回答 1

2

我相信这条线是问题所在:

$("input:radio[name=custom_form[custom_field_1]]")

方括号(“[”和“]”)是 css 选择器中的保留字符(您将这样的选择器传递给 jQuery 的 $() 函数),并且您使用方括号作为元素名称的一部分。试试这个:

$("input:radio[name=custom_form\\[custom_field_1\\]]")

这会产生一个css选择器

input:radio[name=custom_form\[custom_field_1\]]

从而逃避括号。可能不适用于所有浏览器。

编辑:这里有一些关于在 css 选择器中转义字符的附加信息:http: //mathiasbynens.be/notes/css-escapes

于 2013-10-25T08:43:15.850 回答