【问题标题】:Business hours form using Jquery使用 Jquery 的营业时间表格
【发布时间】:2012-10-05 19:38:32
【问题描述】:

我正在尝试使用 JavaScript 修改表单以填充此表单的选项。我几乎完成了,但我达到了一个我无法克服的里程碑。我想知道是否有人可以提供帮助。示例可在此处获取:http://jsfiddle.net/vladc77/bq5U6/3/

我可以成功分配休息日(周六和周日),但我无法通过选中/取消选中表单中的复选框来更改所有工作日的状态(禁用/启用)。请让我知道在不改变我为该行中的复选框分配样式的方式的情况下可以做什么:

 $(this).append(' <span class="closed custom-checkbox"><input type="checkbox" name="closed" value="closed" class="closed" id="closedHoursElement" onchange="closedHours()"><span class="box"><span class="tick"></span></span></span>Closed');

提前谢谢你。

【问题讨论】:

    标签: javascript jquery html forms select


    【解决方案1】:

    这是因为您正在尝试获取复选框的兄弟姐妹.. 它唯一的兄弟姐妹是 span 元素。选择元素是父元素的兄弟。

    $('input[type=checkbox]').change(function() {   
           $(this).parent().siblings('select').prop('disabled', this.checked);
    });
    

    http://jsfiddle.net/vladc77/bq5U6/3/

    您还应该使用.prop() 来设置禁用属性。对于 jQuery 1.6+

    来自 jQuery 文档

    应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。

    使用 prop 设置 disabled 属性,你可以将其设置为 true 或 false

    $(element).prop('disabled',true);  // disabled
    $(element).prop('disabled',false); // not disabled
    

    【讨论】:

    • 非常感谢。现在说得通了。顺便说一句,我想知道在这种情况下您是否可以制作一个关于如何使用 .prop() 的示例。我试过了,但还没有成功。再次感谢您。
    • @vladc77 我在最后添加了如何使用道具。您通常只需将真/假传递给属性。我对您的代码的编辑,我传入 this.checked 如果选中则返回 true,如果未选中则返回 false
    • 我明白了。再次感谢你。非常感谢您的帮助。
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 2012-10-20
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多