JQuery выбрать входные [тип = изображение] братьев и сестер - PullRequest
5 голосов
/ 05 февраля 2010

Я пытаюсь преобразовать эти формы в ajax (пример)

<table>
<tr>
            <td>Prov</td><td>Cod</td><td>Nombre</td><td>Precio</td><td>Stock1</td><td></td><td></td>
        </tr>

                <tr class="o d">
                    <td class="provName">Karabitian</td>

                    <td class="cod d">494011135</td>
                    <td class="name" id="artID13899">Eje del. m505  y4ch98040 comp. s/cierre Shimano</td>
                    <td class="alignright">$&nbsp;69.00</td>
                    <td class="center">-</td>
                    <td class="add">
                <nobr>

                    <form name="formularioAgregaItem" action="script.php" method="POST" autocomplete="off" class="add">
                        <fieldset>
                            <input name="function" value="cartAddByBarcode" type="hidden">
                            <input name="barcode" value="KAR005834" type="hidden">
                            <input name="orderID" value="23333" type="hidden">
                            <input name="qty" id="qty13899" size="2" maxlength="3" class="i" value="15" type="text">
                            <input src="add_16x16.gif" alt="agregar a la orden" type="image">
                        </fieldset>
                    </form>

                </nobr>
                </td>
                </tr>

                <tr class="o d">
                    <td class="provName">Karabitian</td>

                    <td class="cod d">494011137</td>
                    <td class="name" id="artID13900">Eje del. m565  y4c698010  comp. s/cierre Shimano</td>
                    <td class="alignright">$&nbsp;260.00</td>
                    <td class="center">-</td>
                    <td class="add">
                <nobr>

                    <form name="formularioAgregaItem" action="script.php" method="POST" autocomplete="off" class="add">
                        <fieldset>
                            <input name="function" value="cartAddByBarcode" type="hidden">
                            <input name="barcode" value="KAR005835" type="hidden">
                            <input name="orderID" value="23333" type="hidden">
                            <input name="qty" id="qty13900" size="2" maxlength="3" class="i" value="15" type="text">
                            <input src="add_16x16.gif" alt="agregar a la orden" type="image">
                        </fieldset>
                    </form>

                </nobr>
                </td>
                </tr>

                <tr class="o d">
                    <td class="provName">Karabitian</td>

                    <td class="cod d">494011143</td>
                    <td class="name" id="artID13905">Eje del. m775  y26k98030 comp. s/cierre Shimano</td>
                    <td class="alignright">$&nbsp;290.00</td>
                    <td class="center">-</td>
                    <td class="add">
                <nobr>

                    <form name="formularioAgregaItem" action="script.php" method="POST" autocomplete="off" class="add">
                        <fieldset>
                            <input name="function" value="cartAddByBarcode" type="hidden">
                            <input name="barcode" value="KAR005837" type="hidden">
                            <input name="orderID" value="23333" type="hidden">
                            <input name="qty" id="qty13905" size="2" maxlength="3" class="i" value="15" type="text">
                            <input src="add_16x16.gif" alt="agregar a la orden" type="image">
                        </fieldset>
                    </form>

                </nobr>
                </td>
                </tr>

                <tr class="o d">
                    <td class="provName">Karabitian</td>

                    <td class="cod d">494011153</td>
                    <td class="name" id="artID13910">Eje del. r500  y4bg98030  comp. s/cierre Shimano</td>
                    <td class="alignright">$&nbsp;73.00</td>
                    <td class="center">-</td>
                    <td class="add">
                <nobr>

                    <form name="formularioAgregaItem" action="script.php" method="POST" autocomplete="off" class="add">
                        <fieldset>
                            <input name="function" value="cartAddByBarcode" type="hidden">
                            <input name="barcode" value="KAR005841" type="hidden">
                            <input name="orderID" value="23333" type="hidden">
                            <input name="qty" id="qty13910" size="2" maxlength="3" class="i" value="15" type="text">
                            <input src="add_16x16.gif" alt="agregar a la orden" type="image">
                        </fieldset>
                    </form>

                </nobr>
                </td>
                </tr>

                <tr class="o d">
                    <td class="provName">Karabitian</td>

                    <td class="cod d">494011157</td>
                    <td class="name" id="artID13914">Eje del. r560  y4c498010 comp. s/cierre Shimano</td>
                    <td class="alignright">$&nbsp;137.00</td>
                    <td class="center">-</td>
                    <td class="add">
                <nobr>

                    <form name="formularioAgregaItem" action="script.php" method="POST" autocomplete="off" class="add">
                        <fieldset>
                            <input name="function" value="cartAddByBarcode" type="hidden">
                            <input name="barcode" value="KAR005845" type="hidden">
                            <input name="orderID" value="23333" type="hidden">
                            <input name="qty" id="qty13914" size="2" maxlength="3" class="i" value="15" type="text">
                            <input src="add_16x16.gif" alt="agregar a la orden" type="image">
                        </fieldset>
                    </form>

                </nobr>
                </td>
                </tr>
</table>

Но я не могу понять, как получить входные данные из той же строки, по которой я нажал

$('input[type=image]').click(function(){
    // insert voodoo go get inputs here
    // ajax call
    return false;
});

Я не могу сделать что-то вроде $ (input [name = "barcode"]) Есть идеи?

Ответы [ 2 ]

12 голосов
/ 05 февраля 2010

вам нужно сделать что-то вроде:

$('input[type=image]').click(function(){
    var image = $(this);
    var parent = image.parent(); // this will be the fieldset, could also do .closest('fieldset)', if the fieldset is not the immediate parent
    var neededInput = $('input[name=barcode]', parent);
    // do something with it
    return false;
});

или с использованием siblings() -метода

$('input[type=image]').click(function (event){
    event.preventDefault();
    var $image = $(this);
    var $neededInput = $image.siblings('input[name=barcode]');
    // do something with it
});
1 голос
/ 05 февраля 2010

внутри функции щелчка, this будет ссылкой на изображение, на которое вы нажали. Так что вы можете сделать

$(this).siblings()

или

$(this).closest('fieldset').find(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...