使用Jquery的空文本框

时间:2010-01-18 04:35:37

标签: jquery textbox

单击“删除”时,我可以隐藏'tr'。使用以下代码。

$("a#minus").bind("click", function(e){
    $(this).closest('tr').hide();
});

但我还想清除2个文本框的内容(文本框的id是动态的[frm_Expense_expensesVO_ __ strAmount和frm_Expense_expensesVO _ __ memo],这里'*'从1变为无穷大)。请帮忙。感谢

<table>
<tr>
    <td>
        Amount
    </td>
    <td>
        Memo
    </td>
    <td>    
        &nbsp;
    </td>
</tr>
<tr>
    <td>
        <input type="text" name="expensesVO[0].strAmount" value="2.30" id="frm_Expense_expensesVO_0__strAmount"/>
    </td>
    <td>
        <input type="text" name="expensesVO[0].memo" value="Five" id="frm_Expense_expensesVO_0__memo"/>
    </td>
    <td>
        <a id="minus" href="#">Remove</a>
    </td>
</tr>
<tr>
    <td>
        <input type="text" name="expensesVO[1].strAmount" value="3.45" id="frm_Expense_expensesVO_1__strAmount"/>
    </td>
    <td>
        <input type="text" name="expensesVO[1].memo" value="Six" id="frm_Expense_expensesVO_1__memo"/>
    </td>
    <td>
        <a id="minus" href="#">Remove</a>
    </td>
</tr>
<tr>
    <td>
        <input type="text" name="expensesVO[2].strAmount" value="" id="frm_Expense_expensesVO_2__strAmount"/>
    </td>
    <td>
        <input type="text" name="expensesVO[2].memo" value="" id="frm_Expense_expensesVO_2__memo"/>
    </td>
    <td>
        <input type="submit" id="frm_Expense_ExpenseAdd_plus" name="action:ExpenseAdd_plus" value="+"/>
    </td>
</tr>
<tr>
    <td>    
        <label id="frm_Expense_transactionVO_amount">5.75</label>
    </td>
    <td align="right">
        <input type="submit" id="frm_Expense_Cancel" name="action:ExpenseAdd_cancel" value="Cancel"/>
    </td>
    <td align="left">
        <input type="submit" id="frm_Expense_Save" name="action:ExpenseAdd_save" value="Save"/>
    </td>
</tr>

4 个答案:

答案 0 :(得分:16)

$("a#minus").bind("click", function(e){
    $(this).closest('tr').hide().find('input:text').val('');
});

注意:另请参阅darmen's answer,了解选择器a#minus无法正常工作的原因。

答案 1 :(得分:7)

您应该为锚点指定一个类。对单个id绑定将引发最新事件的事件。

示例:

$("a.remove").live('click', function(){
   $(this).closest('tr').hide().find("input").val("");
});

答案 2 :(得分:0)

使用class属性,然后使用className选择两个文本框。然后,您可以将该集合的值设置为空字符串。

答案 3 :(得分:0)

在jQuery核心或插件中最接近定义?

无论如何,您可以获得该tr中的所有文本框,然后进行正则表达式匹配。这应该只清空与你问题中提到的id匹配的文本框。

$("a#minus").bind("click", function(e){
    var row = $(this).closest('tr');
    $("input:text", row).each(function(item) {
        var id = item.id;
        if(/frm_Expense_expensesVO_[0-9]+__strAmount/.test(id)) {
            $(item).val('');
        }
        else if(/frm_Expense_expensesVO_[0-9]+__memo/.test(id)) {
            $(item).val('');
        }
    });
    row.hide();
});