问题removeAttr("禁用")

时间:2014-05-22 16:04:27

标签: javascript jquery html attr disabled-input

我正在编写一个表单,我希望有这个功能:

如果您点击美国作为您所在的国家/地区,则某些输入会被解锁(在禁用之前)。我在jquery中创建了这段代码:

$('option#usa').click(function(){
    $('.inputText').attr('disabled', false);
    })
habilita : function(){ 
    $(".inputText").removeAttr("disabled");
 }
deshabilita: function(){ 
    $(".inputText").attr("disabled","disabled"); }

在HTML文档中我有这个:

<span class="texto azul">Country</span><select class="caja" name="country">
<option value="">Country...</option>
<option value="Afganistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="United States of America" onclick="habilita()">USA</option>
</select>
<span id="usa" class="texto azul">HCP Designation</span><select name="hcp" disabled="disabled" class="caja inputText">
            <option value="des">Designation...</option>
            <option value="md">MD</option>
        </select><br /><br />
        <span id="texto" class="texto azul">If other, please specify</span>
        <textarea class="caja inputText" name="texto" disabled="disabled"></textarea><br /><br />
        <span class="texto azul">State of Licensure</span><input class="caja inputText" name="state" type="text" disabled="disabled"/><br /><br />
        <span class="texto azul">License number</span><input class="caja inputText" name="license" type="text" disabled="disabled"/><br /><br />
        </form>

问题在于我从未实现过字段显示为解锁状态。

1 个答案:

答案 0 :(得分:0)

我认为有几件事可以帮助你。首先,正如 @Eevee 指出的那样,在设置DOM属性时,应该使用.prop()函数而不是.attr()函数。

其次,语法habilita : function()用于对象。但是,habilitadeshabilita似乎不在对象中(除非代码中有更多内容)。我不相信这是有效的。

请尝试以下方法:

$('option#usa').click(function(){
    $('.inputText').prop('disabled', false);
});
var habilita = function() { 
    $(".inputText").prop('disabled', false);
};
var deshabilita = function() { 
    $(".inputText").prop('disabled', true); 
};