如何动态清除文本控件的文本?

时间:2016-01-11 14:41:37

标签: javascript jquery html

我有一个行表,每行都有一个编辑按钮。当我单击按钮时,我可以设置行值以在表单上形成控件。

我希望当我致电$('#txtFirstName').empty()时,应该清除txtFirstName中的文字。相反,文本不会被清除,当我再次调用表单时,它会显示该控件中的旧文本。

有没有办法清除控件中的文字?

$('#btnClear').click(function () {
    $('#txtFirstName').empty();
    $('#txtLastName').empty();
}

源代码显示数据已清除。

<tr>
    <td>
        <label for="employee_FirstName">First Name</label>
    </td>
    <td>
        <input class="form-control" data-val="true" data-val-required="The First Name field is required." id="txtFirstName" name="employee.FirstName" placeholder="First Name" style="width:400px" type="text" value="" />
    </td>
    <td>
        <span class="field-validation-valid" data-valmsg-for="employee.FirstName" data-valmsg-replace="true"></span>
    </td>
</tr>
<tr>
    <td>
        <label for="employee_LastName">Last Name</label>
    </td>
    <td>
        <input class="form-control" data-val="true" data-val-required="The Last Name field is required." id="txtLastName" name="employee.LastName" placeholder="Last Name" style="width:400px" type="text" value="" />
    </td>
    <td>
        <span class="field-validation-valid" data-valmsg-for="employee.LastName" data-valmsg-replace="true"></span>
    </td>
</tr>

此信息可能来自缓存,但我不确定。

1 个答案:

答案 0 :(得分:4)

正如@RoryMcCrossan在上面的comment中所说的,您正在寻找的是jQuery.val

  

获取匹配元素集中第一个元素的当前值或设置每个匹配元素的值。

jQuery.empty不符合你的想法。

  

从DOM中删除匹配元素集的所有子节点

因为您尝试更改元素的值,而不是从DOM中删除元素,所以应使用jQuery.val

作为旁注,您的JavaScript中存在语法错误。您在)的参数列表末尾缺少右括号$('#btnClear').click。无论是否是复制和粘贴错误,我想我会指出它。

另请注意,不是将jQuery.val应用于要清除的每个元素,而是可以按类选择元素并将jQuery.val应用于返回的jQuery对象,该对象将操作应用于每个元素与匹配的类。

这是一个简单的例子:

&#13;
&#13;
$('#clear').click(function() {
    $('.form-control').val('');
});
&#13;
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>

<input class="form-control">
<input class="form-control">
<input class="form-control">
<button id="clear">Clear</button>
&#13;
&#13;
&#13;