从$('input [type =“text”]')中取消一个文本框

时间:2012-11-23 12:40:37

标签: javascript jquery jquery-selectors

我有4个文本框,我写了一些代码:

$('input[type="text"]').keyup(function () {
    if ($(this).val() == '') {
...

我不想将此代码应用于1个texbox,我该怎么办?

2 个答案:

答案 0 :(得分:3)

将该文本框设为id并更新您的代码:

$('input[type="text"]:not("#id_of_txt")').keyup(function () {
    if ($(this).val() == '') {
    }
});

此解决方案只是回答您的问题,而不是建议作为一种良好做法。您可能在某些时候在DOM中添加更多输入框,并且您将不得不继续添加到:not列表,因为其他所有内容都将绑定到keyup事件。

更好的解决方案是给三个输入框一个公共类,并像这样更新你的代码:

$('input.class_of_txt').keyup(function () {

答案 1 :(得分:1)

在3个文本框中添加一个公共类。

<input type="text" class="myclass" />

然后只引用该类:

$('.myclass').keyup(function () {

任何其他解决方案都会降低代码的可维护性。如果有另一个特殊文本框怎么办?你也会例外吗?