2010-02-14 34 views
0

我繼承了一個項目,它向客戶提供訂單。無法使用jquery選擇表單

訂單是一個表格,並且添加到購物車是(意味着!)用jQuery處理。

代碼我有一個看起來像這樣的工作:

<table> 
    <form id="prod1" method="post" action=""> 
     <tr> 
      <td>Prod Name</td><td><input type="text" name="prod1qty" id="prod1qty" /></td><td><input type="button" id="prod1add" /></td> 
     <tr> 
    </form> 
    <form id="prod2" method="post" action=""> 
     <tr> 
      <td>Prod Name</td><td><input type="text" name="prod2qty" id="prod2qty" /></td><td><input type="button" id="prod2add" /></td> 
     <tr> 
    </form> 
    <form id="prod3" method="post" action=""> 
     <tr> 
      <td>Prod Name</td><td><input type="text" name="prod3qty" id="prod3qty" /></td><td><input type="button" id="prod3add" /></td> 
     <tr> 
    </form> 
</table> 

我想選擇所有的輸入型形式中=「按鈕」元素與ID的起點「刺」與jQuery,所以我可以給他們點擊功能...

$("form[id^='prod'] :input[type='button']").click(function(){ 
    console.log(this); 
}); 

但它的失敗......我想看看它是否是由具有的.css更換。點擊()(「邊界」,「1px的紅色實」)到達元素但它並沒有採用它。

我則在該<form>是灰顯螢火蟲注意到,收在同一行,即:

<form id="prod1" method="post" action="" /> 
<tr> 
    <td>Prod Name</td><td><input type="text" name="prod1qty" id="prod1qty" /></td><td><input type="button" id="prod1add" /></td> 
<tr> 
<form id="prod2" method="post" action="" /> 
<tr> 
    <td>Prod Name</td><td><input type="text" name="prod2qty" id="prod2qty" /></td><td><input type="button" id="prod2add" /></td> 
<tr> 

看來這個代碼是有效的HTML(把它通過驗證),所以爲什麼發生這種情況?

謝謝! Josh

+1

你錯了。這不是有效的HTML。表單元素可能不是錶行或錶行的父元素的子元素。 – Quentin

+0

啊,好的。剛剛擺脫了形式,給了'tr'''形式'曾經有過的id,在選擇器及其工作中將'form'更改爲'tr'。謝謝! 我猜測驗證器只檢查有效的語法和結構的有效性。 – Josh

回答

0

想我會更好地貼近這個問題的正確...

通過David Dorward註釋回答我的問題。

感謝您的建議!

0

如果我理解你的問題。也許如果您使用'class=prod',並且檢查$('.prod').click(function(){});可能會讓您訪問點擊表單中的元素。