【发布时间】:2012-08-14 14:21:47
【问题描述】:
长期以来,我一直在努力寻找解决方案,非常感谢任何帮助。
我有一个通过 php sql 查询生成的表,每行旁边有两个按钮 Buy & Sell,当用户单击其中一个按钮时,它会填充对话框中的订单表格
我有一个函数作用于 jQuery 中的单击事件,但它读取表中第一行的第一个字段。
这是我的功能
$('.buy').click(function(){
if($('#buying').dialog('isOpen')) alert('Buy Box Already open');
else {
$(".buycommodity").val($(".commodity_name").val()+"
"+$(".commodity_code").val());
$("#buyprice").val($(".commodity_price").val());
$("#buyqty").val($(".commodity_volume").val());
$('#buying').dialog('open');
}}
);
问题是,如何在表单中读取和填充正确的字段?我怎样才能让 jQuery 知道哪个按钮,在哪一行被点击?所有类型按钮都具有相同的类别,即买入或卖出
这里是表格的一些 HTML 源代码
<div id="exchange">
<form>
<table border="1" cellspacing="5" cellpadding="5">
<tr>
<th>Commodity</th>
<th>Code</th>
<th>Current Price</th>
<th>Past Price</th>
<th>Change</th>
<th>Volume</th>
</tr>
<tr valign='top'>
<td align=left>
<input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10>
</td>
<td align=left>
<input type="text" name="commoditycode" value=1121 readonly="readonly" id="commoditycode" size=6>
</td>
<td align=absmiddle>
<input type="text" name="currentprice" value=100 readonly="readonly" id="currentprice" size=4>
</td>
<td align=absmiddle>
<input align=absmiddle type="text" name="pastprice" value=80 readonly="readonly" id="pasrprice" size=4>
</td>
<td align="absmiddle"><font size="3" color="blue"><em>▲</em></font></td>
<td align=left><input type="text" name="commodityvolume" value=88000 readonly="readonly" id="commodityvolume" size=7>
</td>
<input type=hidden id=commodity_id name=commodity_id value=1>
<input type=hidden class=commodity_name name=commodity_name value=Basmati>
<input type=hidden class=commodity_code name=commodity_code value=1121>
<input type=hidden class=commodity_volume name=commodity_volume value=88000>
<input type=hidden class=commodity_price name=commodity_price value=100>
<td>
<input class=buy type=button name=orderbutton value=Buy>
</td>
<td>
<input class=sell type=button name=orderbutton value=Sell>
</td>
</tr>
</form>
<tr valign='top'>
<td align=left>
<input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10>
</td>
<td align=left>
<input type="text" name="commoditycode" value=386 readonly="readonly" id="commoditycode" size=6>
</td>
<td align=absmiddle>
<input type="text" name="currentprice" value=90 readonly="readonly" id="currentprice" size=4>
</td>
<td align=absmiddle><input align=absmiddle type="text" name="pastprice" value=100 readonly="readonly" id="pasrprice" size=4>
</td>
<td align="absmiddle"><font size="3" color="red"><em>▼</em></font></td>
<td align=left><input type="text" name="commodityvolume" value=44000 readonly="readonly" id="commodityvolume" size=7>
</td><input type=hidden id=commodity_id name=commodity_id value=2>
<input type=hidden class=commodity_name name=commodity_name value=Basmati>
<input type=hidden class=commodity_code name=commodity_code value=386>
<input type=hidden class=commodity_volume name=commodity_volume value=44000>
<input type=hidden class=commodity_price name=commodity_price value=90><td>
<input class=buy type=button name=orderbutton value=Buy></td>
<td><input class=sell type=button name=orderbutton value=Sell></td></tr
</form>
<tr valign='top'>
<td align=left>
<input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10></td>
<td align=left><input type="text" name="commoditycode" value=385 readonly="readonly" id="commoditycode" size=6></td>
<td align=absmiddle><input type="text" name="currentprice" value=75 readonly="readonly" id="currentprice" size=4>
</td>
<td align=absmiddle><input align=absmiddle type="text" name="pastprice" value=88 readonly="readonly" id="pasrprice" size=4></td>
<td align="absmiddle"><font size="3" color="red"><em>▼</em></font></td>
<td align=left>
<input type="text" name="commodityvolume" value=24000 readonly="readonly" id="commodityvolume" size=7></td>
<input type=hidden id=commodity_id name=commodity_id value=3>
<input type=hidden class=commodity_name name=commodity_name value=Basmati>
<input type=hidden class=commodity_code name=commodity_code value=385>
<input type=hidden class=commodity_volume name=commodity_volume value=24000>
<input type=hidden class=commodity_price name=commodity_price value=75><td>
<input class=buy type=button name=orderbutton value=Buy></td>
<td><input class=sell type=button name=orderbutton value=Sell></td></tr>
</form>
<tr valign='top'><td align=left>
<input type="text" name="commodityname" value=Ierro readonly="readonly" id="commodityname" size=10></td><td align=left>
<input type="text" name="commoditycode" value=6 readonly="readonly" id="commoditycode" size=6></td><td align=absmiddle>
<input type="text" name="currentprice" value=33 readonly="readonly" id="currentprice" size=4></td><td align=absmiddle>
<input align=absmiddle type="text" name="pastprice" value=39 readonly="readonly" id="pasrprice" size=4></td><td align="absmiddle"><font size="3" color="red"><em>▼</em></font>
</td><td align=left>
<input type="text" name="commodityvolume" value=124000 readonly="readonly" id="commodityvolume" size=7></td>
<input type=hidden id=commodity_id name=commodity_id value=4>
<input type=hidden class=commodity_name name=commodity_name value=Ierro>
<input type=hidden class=commodity_code name=commodity_code value=6>
<input type=hidden class=commodity_volume name=commodity_volume value=124000>
<input type=hidden class=commodity_price name=commodity_price value=33><td>
<input class=buy type=button name=orderbutton value=Buy></td>
<td><input class=sell type=button name=orderbutton value=Sell></td></tr></form>
<tr valign='top'><td align=left>
<input type="text" name="commodityname" value=Ierro readonly="readonly" id="commodityname" size=10>
</td>
<td align=left>
<input type="text" name="commoditycode" value=9 readonly="readonly" id="commoditycode" size=6></td><td align=absmiddle>
<input type="text" name="currentprice" value=79 readonly="readonly" id="currentprice" size=4></td><td align=absmiddle>
<input align=absmiddle type="text" name="pastprice" value=60 readonly="readonly" id="pasrprice" size=4></td><td align="absmiddle"><font size="3" color="blue"><em>▲</em></font></td><td align=left>
<input type="text" name="commodityvolume" value=24000 readonly="readonly" id="commodityvolume" size=7></td>
<input type=hidden id=commodity_id name=commodity_id value=5>
<input type=hidden class=commodity_name name=commodity_name value=Ierro>
<input type=hidden class=commodity_code name=commodity_code value=9>
<input type=hidden class=commodity_volume name=commodity_volume value=24000>
<input type=hidden class=commodity_price name=commodity_price value=79><td>
<input class=buy type=button name=orderbutton value=Buy></td>
<td><input class=sell type=button name=orderbutton value=Sell></td></tr></form></table
</div>
【问题讨论】:
-
对不起我重新编辑了,希望问题现在有点清楚了:) 谢谢
-
提供一些html代码(由php生成),或者更好地制作jsfiddle示例
-
请一些 html 以使重写您的函数成为可能。无论如何,您应该使用 $(this).parents() 等在表格行中分配正确的值来分配正确的 val()
-
您是否尝试过让您的 $('.buy').click 处理程序调度自定义事件,然后侦听 event.target,然后查找父 div? api.jquery.com/event.target
-
我只是按照建议尝试了 event.target,当我点击按钮时,它说点击:输入我已经更新了问题以包含所要求的 HTML 源
标签: php javascript jquery exchange-server commodity