我有一个JavaScript代码,可以读取html文本框的内容,并且正在使用IE和Chrome,但Firefox无法识别。
HTML代码:
<div id="SetInner_Form">
<form name="Set_Password" method="post" action="">
Email Address
<input class="Auth" name="SetPwd_Username" type="text"/><br/><br/>
New Password <input class="Auth" name="SetPwd_NewPwd" type="password"/><br/><br/>
Retype Password <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可以识别除SetPwd_Username
我错过了什么吗?
答案 0 :(得分:31)
根据您的错误消息,您忘记了选择器中的结束]
。
此:
"input[name=SetPwd_Username"
无效,并产生确切的错误消息。
Chrome无法为无效选择器提供错误。它的.querySelectorAll()
实现似乎并没有拒绝它。这就是差异的原因。
由于Firefox正确拒绝选择器,因此默认为Sizzle引擎,然后引发错误。由于Chrome不会拒绝它,因此您不会收到错误。
答案 1 :(得分:1)
尝试将字段名称放在单引号中。
$("input[name='SetPwd_Username']").val()
^ here ^ and here
答案 2 :(得分:-1)
您必须注意:css和jquery之间有区别,即符号“'” 在jquery
$("input[name='SetPwd_Username']")
和css
input[name=SetPwd_Username]{
}