JQuery Input [Name= ""] не распознается в Firefox

У меня есть код JavaScript, который читает содержимое текстового поля html и работает над IE и Chrome, но не распознается Firefox.

Код HTML:

<div id="SetInner_Form">                
    <form name="Set_Password" method="post" action="">
        Email Address &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input class="Auth" name="SetPwd_Username" type="text"/><br/><br/>
        New Password   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="Auth" name="SetPwd_NewPwd" type="password"/><br/><br/>
        Retype Password &nbsp;<input class="Auth" name="SetPwd_RetypePwd" type="password"/><br/><br/>
        <div id="SetPwdResultWrapper">
            <div id="SetPwdResult" class="Validation_2"></div><br/>
        </div>
        <div id="RedirectLink" align="center" class="NoDisplay">Click <a href='https://localhost/webapp/index.aspx'>here</a> to go to main page</div><br/>
    </form>
    <div id="SetPwdBtnWrapper">
        <input id="SetPwdBtn" name="SetPwdBtn" type="submit" value="Confirm" align="center"/>
    </div>
    <img id="LoadingIcon_auth"/>
</div>

Код Javascript:

$("input[name=SetPwd_Username]").val()

Исключение (на консоли Firefox):

Uncaught exception: Syntax error, unrecognized expression: input[name=SetPwd_Username

Версия JQuery: jquery-1.6.4.min.js

Странная часть: Firefox может распознавать другие элементы html, кроме SetPwd_Username

Я что-то пропустил?

Ответ 1

На основе вашего сообщения об ошибке вы забыли закрытие ] в селекторе.

Это:

"input[name=SetPwd_Username"

недействителен и выдает точное сообщение об ошибке.


В Chrome не отображается ошибка для неверного селектора. Похоже, что его реализация .querySelectorAll() не отвергает его, как следует. Это причина разницы.

Поскольку Firefox корректно отклоняет селектор, он по умолчанию использует движок Sizzle, который затем выдает ошибку. Поскольку Chrome не отклоняет его, вы не получаете ошибку.

Ответ 2

Попробуйте поместить имя поля в одинарные кавычки.

$("input[name='SetPwd_Username']").val()
              ^ here          ^ and here

Ответ 3

Вы должны заметить: есть различие между css и jquery, то есть sysmbon "'" в jquery

 $("input[name='SetPwd_Username']")

и в css

input[name=SetPwd_Username]{
}