2017-10-28 101 views
1

我有两个fancybox对话框,当我点击复选框标签时第二个对话框打开。当第二个选择值发生变化时,在第一个fancybox上勾选复选框

我想要的是第二个对话框,当选择值被改变,然后在第一个对话框复选框应该被选中。

我该如何做到这一点?

这里是我的代码,我想:

$("#fancybox-manual-c").click(function() { 
    $.fancybox.open([{ 
     src : '<div class=\'col-md-3\'><div class="checkbox checkbox-success" onclick="javascript:get(this);">'+ 
'<input id="checkbox1" type="checkbox" class="styled" value="" onclick=""> '+ 
'<label for="checkbox1"><a data-fancybox-next class="button-next" href="#">ONE</a></label>'+ 
'</div></div>', 
     type : 'html', 
     smallBtn : true 
    }]); 
}); 

this.get = function(t){ 
    //$(t).find('input#checkbox1').attr('checked', true); 
    $.fancybox.open([{ 
     src: '<div class="col-md-3"><div class="checkbox checkbox-success"><select onchange="\''+t+'\'.find(\'input#checkbox1\').attr(\'checked\', true);"><option value="Unclassified">False</option><option value="">true</option></select></div></div>', 
     type : 'html', 
     smallBtn : false 
    }]); 
} 

请注意,我要手动打开的fancybox像上面。

任何帮助表示赞赏。谢谢。

CodePen

回答

1

这是一个不好的做法,使用内联JS代码。简单地创建对象,结合事件,然后显示:

var $src = $('<div class="col-md-3"><div class="checkbox checkbox-success"><select><option value="0">False</option><option value="1">true</option></select></div></div>'); 

$src.find('select').on('change', function() { 
    $('#checkbox1').prop('checked', this.value == 1 ? true : false); 
}); 

$.fancybox.open({ 
    src : $src, 
    type : 'html', 
    smallBtn : true, 
    toolbar : false 
}); 

https://codepen.io/anon/pen/WXNLmX?editors=1010

+0

感谢。还有一件事。我怎么能在标题中使用这个'src'对象? – Snappy

+1

嗯,现在,标题可以只是字符串,但你可以使用回调来更新标题https://codepen.io/anon/pen/pdvNxY?editors=1010 – Janis

相关问题