2013-11-01 70 views
1

我在Firefox中收到未捕獲的異常。 ([12:53:36.595]未捕獲的異常:語法錯誤,不能識別的表達式:輸入[ID^= ctl00_ContentBody_cblAtmDebitCards)這是在我的網頁,即時通訊在C#編寫的JavaScript在Firefox中未捕獲的異常

[12:53:36.595] uncaught exception: Syntax error, unrecognized expression: input[id^=ctl00_ContentBody_cblAtmDebitCards 

這是整個呼叫

$.validator.addMethod('CheckOneCreditCard', function() { 
      var cards = $('input[id^=<%=cblCreditCards.ClientID%>], input[id^=<%=cblAtmDebitCards.ClientID%>'); 

      if (cards.length > 0) { 
       for (var i = 0; i < cards.length; i++) { 
        if (cards[i].checked) return true; 
       } 
       return false; 
      } else return false; 
     }); 

我使用http://jqueryvalidation.org/驗證器我試過的每個組合都失敗了。如果您需要更多信息,請告訴我。

+1

你忘了關閉支架在選擇線? – Shyju

+1

總是看看生成的標記,而不是服務器端的代碼! – epascarello

+0

任何你在搜索ID時使用'$(「input [id^= ...'而不是'$(」#...')作爲選擇器的原因是什麼?'ClientID'將返回一個控件的ID,和ID應該是唯一的頁面。 –

回答

2

必須引用jQuery選擇器中的屬性值。
在你的ID周圍加上引號。

您還錯過了]

+0

var cards = $('input [id^=「<%= cblCreditCards.ClientID%>」],input [id^=「<%= cblAtmDebitCards.ClientID%>」]' ); - 這個工作很好!我有時候是個笨蛋:)謝謝。 – TheDizzle

4

你缺少收盤]

var cards = $('input[id^=<%=cblCreditCards.ClientID%>], input[id^=<%=cblAtmDebitCards.ClientID%>]'); 

此外,由於您使用的是實際控制人的ID,我會改變選擇到:

var cards = $('#<%=cblCreditCards.ClientID%>, #<%=cblAtmDebitCards.ClientID%>'); 
0
var cards = $('input[id^=<%=cblCreditCards.ClientID%>], input[id^=<%=cblAtmDebitCards.ClientID%>']);