0

我已经排列了许多文本框(数字不是恒定的)。使用 jquery,我使用了 each 函数来禁用除第一个函数之外的每一个函数。文本框被赋予 aclass = "user_inputs"并且 ids 被逐步赋予id="text1" , "text2",依此类推......

$('input.user_inputs').each(function() {$(this.attr('disabled','true'}); $('input#text1').attr('disabled',false);

我想要的是 - 如果第一个文本框中只有一个值,那么第二个文本框被激活,如果第二个文本框也有一个值,那么第三个文本框被激活,依此类推。我尝试了一个带有 keyup 函数的 for 循环,如下所示:

    var n=1
for(n;n<=total_textboxes;n++){
$('input#text' + n).keyup(function() {
    $('input#text' + n + 1).attr('disabled',false)
});//end keyup
}//end for

这不起作用 - 相反,它阻碍了我的页面加载。

请帮帮我

4

3 回答 3

0

尝试这个:

var inputs = $(".user_inputs");
for(var i = 1; i < inputs.length + 1; i++){
  var prev = $("#text" + (i - 1));
  if(prev.length){
    $("#text" + i).attr("disabled", prev.val() == '' ? true : false);
  }
}

http://jsfiddle.net/74Kzu/5/

于 2012-11-13T06:01:42.927 回答
0

要删除一个属性,或者更好的是禁用属性,您必须使用:

 $('input#text' + n + 1).removeAttr('disabled');
于 2012-11-13T06:41:52.227 回答
0

您实际上不需要使用for(n;n<=total_textboxes;n++)...$.each()并且$.next()也可以处理它

举个例子

html:

<input type="text" class="user_inputs" id="text1" />
<input type="text" class="user_inputs" id="text2" />
<input type="text" class="user_inputs" id="text3" />
<input type="text" class="user_inputs" id="text4" />
<input type="text" class="user_inputs" id="text5" />
<input type="text" class="user_inputs" />
<input type="text" class="user_inputs" />
<input type="text" class="user_inputs" />
<input type="text" class="user_inputs" />

jQuery:

$(document).ready(function(){
    // To demonstrate disable all first
    $('input.user_inputs').each(function() { $(this).attr('disabled','true'); });
    // Left only first one enabled
    $('input#text1').attr('disabled',false);
    // For each of your inputs
    $('input[type=text]').each(function() {
        // Search for "#text + (n + 1)" blabla.. named ones
        if ($.trim(this.id).indexOf("text") >= 0) {
            // Bind keyup
            $(this).keyup(function() {
                // Again search for "#text" named ones
                if ($.trim($(this).next().attr('id')).indexOf("text") >= 0) {
                    // Enable
                    $(this).next().attr('disabled', false);
                }
            });
        }
    });
});

jsfiddle:http: //jsfiddle.net/BerkerYuceer/nFQjH/

于 2012-11-13T08:16:28.763 回答