我有一段 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
我错过了什么吗?
最佳答案
根据您的错误消息,您忘记了选择器中的结束 ]
。
这个:
"input[name=SetPwd_Username"
将无效,并产生确切的错误消息。
对于无效的选择器,Chrome 不会报错。它的 .querySelectorAll()
实现似乎并没有像它应该的那样拒绝它。这就是差异的原因。
因为 Firefox 正确地拒绝了选择器,所以它默认使用 Sizzle 引擎,然后它会抛出错误。由于 Chrome 不会拒绝它,因此您不会收到错误。
关于javascript - JQuery 输入[名称 =""] 在 Firefox 上无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736386/