2013-12-23 15 views
10

我有一段JavaScript代碼,它讀取html文本框的內容,並且正在使用IE和Chrome,但未被Firefox識別。JQuery輸入[Name =「」]在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() 

異常(火狐控制檯上):

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

JQuery的版本是:jQuery的1.6.4.min。 js

Th e奇怪的部分是,Firefox可以識別除了SetPwd_Username

以外的其他html元素我錯過了什麼嗎?

+0

是你錯過了部分地方的值字符串,並要求您輸入單引號 –

+0

您是否正在嘗試讀取'something = $(...).val()'或分配值$(...).val(something)'? –

+0

看起來不錯http://jsfiddle.net/arunpjohny/496rc/1/ –

回答

30

根據您的錯誤消息,您忘記了在選擇器中關閉]

此:

"input[name=SetPwd_Username" 

不會是有效的,併產生準確的錯誤信息。


Chrome對於無效選擇器沒有提供錯誤。看起來它的.querySelectorAll()實現不會拒絕它,因爲它應該。這是差異的原因。

由於Firefox正確拒絕了選擇器,它默認爲Sizzle引擎,然後引發錯誤。由於Chrome不會拒絕,因此您不會收到錯誤消息。

+0

這個發現對我很有用!我錯過了包括結束括號。後續問題,是否有一個工具可以讓我驗證或檢查這些更正?因爲我只使用notepad ++作爲我的javascript編輯器。 – ChiSen

+0

你的意思是格式不正確的選擇器?不是我所知道的,除了在控制檯中查找錯誤消息之外。 –

1

嘗試將該字段的名稱放在單引號中。

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

這不是要求。沒有引號就完全有效。 –

+0

@cookiemonster我想那個! – HICURIN

+1

這應該可以使用或不使用引號。文檔稱它可以是不帶引號的單個單詞或帶引號的字符串。 http://api.jquery.com/attribute-equals-selector/ – Masterbuddha

-1

您必須注意:有CSS和jQuery之間的diffirence,那就是sysmbon 「'」 jQuery中

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

,並在CSS

input[name=SetPwd_Username]{ 
}