如何动态获取输入类型的名称属性=" text"并使用JQuery禁用或启用它?

时间:2014-12-10 05:53:03

标签: javascript jquery

任何人都可以帮我解决如何获取文本域名称属性并检入数组然后相应地禁用或启用该字段。下面是我的代码

 $("input").each(function () {
    //alert();
    var check = $(this).attr('name');
    $("input[name='noListStrings[0]']").prop("disabled", true);
    if (check != undefined && $("input[name='" + check + "']").is(":hidden") == false) {
        for (var i = 0; i < yesListStrings.length; i++) {
            //alert("yesLoop");
            if (check == yesListStrings[i]) {
                alert("yesList");
                $("input[name='" + $(this).attr('name') + "']").attr("disabled", false);
            }
        }
        for (var i = 0; i < noListStrings.length; i++) {
            //alert("noLoop");
            if (check == noListStrings[i]) {
                alert("nolist");
                $("input[name='" + check + "']").attr("disabled", true);
            }
        }
    }
});

我正在检查字段名称,如果它在该数组中存在,我将禁用或启用该字段。 我尝试使用$.inArray(fieldname,myarr)无效。所以请不要建议我使用$.inArray()

2 个答案:

答案 0 :(得分:0)

在这种情况下,我通常会在输入中添加id。您可以提供与名称相同的ID。 $('#idname')提供了更清晰的访问。

$('input').each(function(){
    alert(this.name);
    //alert(this.id);
});

答案 1 :(得分:0)

我刚为你的问题写了一段代码。试试吧。逻辑在所有输入中都是相同的循环^然后在数组&amp;中搜索名称。禁用它。

yesListStrings = ['14','12'];

$('#click_me').on('click', function()
{
           $('input[type="text"]').each(function() 
            {
             if(jQuery.inArray(this.name,yesListStrings) != -1)
             {
                 $('input[name="'+this.name+'"]').attr('Disabled',true);
             }
    });                      
});

http://jsfiddle.net/z59kmm96/