2010-02-14 35 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(){});可能会让您访问点击表单中的元素。