更新:添加了 textEquals 选择器代码。

我正在对我的 Web 应用程序中的一个字段使用 jquery 和自动完成功能。

我有一个“更改”事件,可确保用户从自动完成列表中选择一个有效值。此事件效果很好,除非在所选值中有括号时 li:textequals 选择器不起作用。

如何使用 li:textequals 转义文本中的括号?

    change: function (event, ui) {
        //if the value of the textbox does not match a suggestion, clear its value
        if ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0) {
            $(this).val('');
        };

textEquals 选择器代码:
$.expr[':'].textEquals = function (a, i, m) {
    return $(a).text().match("^" + m[3] + "$");
};

最佳答案

我还没有测试过这个,但 jQuery 文档建议使用两个反斜杠:



所以在你的情况下,它可能需要是:

var val = $(this).val()
    .replace("(", "\\(")
    .replace(")", "\\)");
if ($(".ui-autocomplete li:textEquals('" + val + "')").size() == 0) {
    $(this).val('');
};

关于jquery - 如何使用 li :textequals 转义括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8479017/

10-10 00:19