【问题标题】:Issue removeAttr("disabled")问题 removeAttr("disabled")
【发布时间】:2014-05-22 16:04:27
【问题描述】:

我正在编写一个表单,我想拥有这个功能:

如果您点击美国作为您的国家/地区,某些输入将被解锁(在它们被禁用之前)。我在 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>

问题是我从来没有实现这些字段看起来是解锁的。

【问题讨论】:

  • 制作一个 jsfiddle,我们可以更轻松地提供帮助。
  • 你可能想要.prop('disabled', false)。该属性只是一个属性; DOM 属性实际上控制它是否被禁用。
  • 这是您的实际代码吗?如果是这样,最后两个示例是对象语法,但它们不在对象中。我不认为它是那样工作的。
  • @eevee,删除该属性也应该可以正常工作。布尔属性和 DOM 属性是紧密耦合的。
  • 问题是没有名称为habilitadishabilita 的函数,因为你的语法是关闭的。查看有关函数的教程,例如developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions

标签: javascript jquery html attr disabled-input


【解决方案1】:

我相信有几件事会帮助你。首先,正如 @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); 
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2015-04-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多