如果输入一个文本框,如何遍历每个文本框并将文本框值设置为禁用

时间:2014-04-08 13:25:53

标签: javascript jquery

我有一个表。内部表我有一些文本框。我想禁用所有文本框    在输入一个之后使用相同的名称。    用jquery怎么做?   我在下面的选择框中使用了同样的东西。

      <script>
        $(document).ready(function(){
       $('select[name*="course"]').live('change', function() {
    $('select[name*="course"] option').attr('disabled',false);

    // loop each select and set the selected value to disabled in all other selects
    $('select[name*="course"]').each(function(){
        var $this = $(this);
        $('select[name*="course"]').not($this).find('option').each(function(){
            if($(this).attr('value') == $this.val())
                $(this).attr('disabled',true);
        });
    });

});
});
</script>

But i want to do it for textboxes.How to do?

2 个答案:

答案 0 :(得分:3)

设置change事件,检查长度。如果有长度,请禁用具有相同名称的所有其他长度:

$("table input:text").change(function() {
    if (this.value.length > 5) {
        $("table").find("input:text[name=" + this.name + "]").not(this).prop("disabled", true);
    }
});

编辑:接受@ adeneo的建议!

答案 1 :(得分:1)

点子:

在文本字段更改:

  1. 检查是否输入了值,触发禁用
  2. 获取更改文本字段的名称
  3. 搜索所有其他文本字段并将其设置为禁用(或在第1步中检测到启用)
  4. 代码:

    $('input[type=text]').on('change', function () {
        var disable = $(this).val().trim().length > 0; // only disable if something has been entered
        var textBoxName = this.name;              // get the name of the current textbox
        $('input[name='+textBoxName+']')          // select all textboxes /w same name
            .not(this)                            // except for the current ont
            .prop('disabled', disable);           // and set them disabled
    });