当聚焦输入时,如何通过类名从元素中获取元素

时间:2014-05-15 09:26:23

标签: jquery html

我有以下表格:

<form id="formulier" class="cart" method="post" action="<?php echo makeLink(getCurrentItem()); ?>">
        <input type="hidden" value="productid" name="productId">
        <tr class="lol">
            <td><img src="" width="125" alt="" /></td>
            <td><h3 class="no-mt"><?php echo $cart['name'] ?></h3>
            <p>
                <?php echo substr($cart['description'],0 ,100) ?>
            </p></td>
            <td class="add-to-basket">
            <input type="number" id="modify-number" name="quantity" value="<?php echo $cart['quantity'] ?>" min="1" required />
            <input type="hidden" id="productId" name="productId" value="<?php echo $cart['productId'] ?>" />
            </td>
            <td class="add-to-basket-button">
            <fieldset>
                <button type="submit" id="remove" name="remove">
                    <i class="fa fa-trash-o fa-lg"></i>
                </button>
            </fieldset></td>

            <?php $price = $cart['quantity'] * $cart['price'] ?>
            <td class="price"><?php echo  number_format($price, 2)?></td>
        </tr>
    </form>

因此,当#modify-numberfocused时,我想要停用#remove button

我尝试这样做:

    $('#modify-number').focus(function() {
        var price = $(this).parents('#formulier').find('#remove');
        price.prop('disabled', true);
    })

但这似乎不起作用。

有谁可以帮助我?

2 个答案:

答案 0 :(得分:2)

 $('#modify-number').focus(function() {
  // your other stuff
  $('#remove').attr('disabled',true);
})

<强>更新 根据OP的评论

$('#modify-number').focus(function() {
  // your other stuff
$(this).closest('form').find('button[type="submit"]').attr('disabled',true);
})

答案 1 :(得分:1)

您需要将button定位为id remove td而非price定位$('#modify-number').focus(function() { $('#remove').prop('disabled', true); })

id

根据您的评论,您似乎有重复idid必须是唯一的,您需要使用类更改所有重复的<button type="submit" class="remove" name="remove"> <i class="fa fa-trash-o fa-lg"></i> </button>

button

以上只更改$('#modify-number').focus(function() { var removeBtn = $(this).closest('.formulier').find('.remove'); removeBtn.prop('disabled', true); }) 元素的重复ID,您还需要更改其他元素,然后您可以使用:

{{1}}