【问题标题】:Selecting checkbox value that is nested in several spans选择嵌套在多个跨度中的复选框值
【发布时间】:2013-08-04 22:19:56
【问题描述】:

我需要对我为朋友的 WordPress 网站制作的表单进行动态表单验证。我使用了一个表单插件,这样他们将来使用起来会更容易。

我需要根据其他字段的输入有条件地要求某些字段。例如,如果一个人在他们有宠物的复选框中选中“是”,那么我需要一堆其他与宠物相关的字段才能成为必需的,并且可能也会隐藏自己。我想通过在输入值更改时添加/删除类来做到这一点。

由于插件的原因,网站上的复选框非常嵌套在跨度中,我很难弄清楚如何访问我的复选框的值。

jsFiddle 如果下面的代码太乱 -> http://jsfiddle.net/ebgranger/cjsg2/3/

HTML

<p>Do you currently have pets?
        <br /> <span class="wpcf7-form-control-wrap checkbox-243"><span class="wpcf7-form-control wpcf7-checkbox wpcf7-validates-as-required petsCheckBox"><span class="wpcf7-list-item"><input type="checkbox" name="checkbox-243[]" value="Yes" />&nbsp;<span class="wpcf7-list-item-label">Yes</span></span><span class="wpcf7-list-item"><input type="checkbox" name="checkbox-243[]" value="No" />&nbsp;<span class="wpcf7-list-item-label">No</span></span>
        </span>
        </span>
    </p>

jQuery

$('.checkbox-243 .wpcf7-checkbox .wpcf-list-item input').blur(function () {
if (this:checkbox:checked = "Yes") { 
    $(this).parents('p').addClass('red');
} else if (this:checkbox:checked == "No") {
    $(this).parents('p').removeClass('red');
} 
});

这段代码运行得不太好。对于我希望它如何工作,我有逻辑,但我需要了解更多关于 jQuery 语法的信息。

【问题讨论】:

    标签: jquery class dynamic checkbox nested


    【解决方案1】:

    你有错误的语法来定位复选框。

    使用find先获取。

    还检查了属性是布尔值..不是字符串

    if ( $(this).find('checkbox').is(':checked')) {
        // Add class
    } else {
       // remove class
    }
    

    更新

    $('.checkbox-243 .petsCheckBox input[value="Yes"]').change(function () {
        var $this = $(this);
        if ( $this.is(':checked')) {
            $this.closest('p').addClass('red');
        } else {
            $this.closest('p').removeClass('red');
        }
    });
    

    Check Fiddle

    【讨论】:

    • 我修改了我的代码,但它目前不起作用。我是否正确定位了祖先段落标签?感谢您的回复。
    • 我无法理解您的问题属性。您发布的选择器内的唯一输入是复选框输入。我没有看到文本框
    • 提出的解决方案似乎没有解决我的js小提琴中的问题 $(this).parents('p').removeClass('red');例如,我只是想更改 HTML 代码最顶部的父段落标签的背景颜色。
    • 所以如果复选框被选中,所有元素都应该突出显示.. 模糊事件对于复选框没有意义
    • 只是 p 标签@Sushanth
    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 2013-10-31
    • 2013-03-08
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多