错误:语法错误,使用输入[名称]的表达式无法识别:选中的选择器

时间:2018-12-09 02:56:37

标签: javascript jquery

我正在社交媒体上进行编码,并且在我通过Safari浏览器进行检查之前,它一直非常整洁。在这里,它不断抛出我无法解决自己的错误-我已经尝试过;)。一旦您访问我的设置页面,该错误就会出现,我在其中有一个将数据发送到后端的ajax请求。就像野生动物园引擎认为缺少尾部支架。我正在使用jQuery v3.3.1

错误

Error: Syntax error, unrecognized expression: input[name='assault'     
(anonymous function) - jquery.js 2:31048

重要的html代码

<form id="settingsForm">    
    <div>
       <label>
         <div><img src="images/loggedin/csgo/assault.png"></div>
         <div class="hidden"><input type="checkbox" name="assault" value="1"></div>
        </label>
    </div>
</form>

重要的jQuery代码

$(document).on("submit", "#settingsForm", function(e){
        e.preventDefault();
        var assault     = $("input[name='assault']:checked").val();
        if (assault != "1") { assault = ""; }

        //doing my ajax request here...
});

2 个答案:

答案 0 :(得分:1)

尝试以下方法,看看是否可行。

相反,如果在按名称进行检查时在同一选择器中使用“:checked”,则可以尝试使用is()方法。

if(!$("input[name='assault']").is(":checked")){
    // checkbox is not checked
}

此外,您可以检查使用的是哪个版本的Safari,以及是否支持该版本。 jQuery - Browser Support

答案 1 :(得分:-1)

如果您对错误出在哪里感到好奇...可以了。我很快就会删除这个问题

            function addColorROLE(toDo){

            var roles       = ["assault", "sniper", "csgosupport", "assasin", "fighter", "mage", "marksman", "lolsupport", "tank"];
            var rolesCsgo   = ["assault", "sniper", "csgosupport"];
            var rolesLOL    = ["assasin", "fighter", "mage", "marksman", "lolsupport", "tank"];

            if (toDo == "1"){
                var checkChecked = 0;
                while (roles.length - 1 >= checkChecked){
                    if ($("input[name='"+roles[checkChecked]+"'").prop("checked")){
                        $("input[name='"+roles[checkChecked]+"'").parent().parent().find("img").addClass("pickedRole");
                        $("input[name='"+roles[checkChecked]+"'").parent().parent().prepend('<div class="selectedCheckedS"><img src="images/overall/check.png"></div>');
                    } else {
                        $("input[name='"+roles[checkChecked]+"'").parent().parent().find("img").removeClass("pickedRole");
                        $("input[name='"+roles[checkChecked]+"'").parent().parent().find(".selectedCheckedS").remove();
                    }
                    checkChecked++;
                }
            } else if (toDo == "2"){
                var checkedTwo = 0;
                while (rolesLOL.length - 1 >= checkedTwo){  
                    $("input[name='"+rolesLOL[checkedTwo]+"'").prop("checked", true);
                    $("input[name='"+rolesLOL[checkedTwo]+"'").parent().parent().find("img").addClass("pickedRole");
                    $("input[name='"+rolesLOL[checkedTwo]+"'").parent().parent().prepend('<div class="selectedCheckedS"><img src="images/overall/check.png"></div>');   
                    checkedTwo++;
                }
            } else if (toDo == "3"){
                var checkedThree = 0;
                while (rolesCsgo.length - 1 >= checkedThree){
                    $("input[name='"+rolesCsgo[checkedThree]+"'").prop("checked", true);
                    $("input[name='"+rolesCsgo[checkedThree]+"'").parent().parent().find("img").addClass("pickedRole");
                    $("input[name='"+rolesCsgo[checkedThree]+"'").parent().parent().prepend('<div class="selectedCheckedS"><img src="images/overall/check.png"></div>');    
                    checkedThree++;
                }
            }
        }