在datalink(jQuery)中使用设置字段设置单选按钮
我需要使用datalink(jQuery插件)中的setField()方法设置单选按钮 我已经在gitHub上阅读了有关这方面的问题,并看到了一个fork来解决它(),但这是针对jQuery的旧版本的在datalink(jQuery)中使用设置字段设置单选按钮,jquery,jquery-plugins,Jquery,Jquery Plugins,我需要使用datalink(jQuery插件)中的setField()方法设置单选按钮 我已经在gitHub上阅读了有关这方面的问题,并看到了一个fork来解决它(),但这是针对jQuery的旧版本的 使用datalink插件的setField方法更新单选按钮的简单方法是什么,也许只需稍加修改?也许还有其他替代品/插件?多亏了此网站上某个问题的评论(https://github.com/jquery/jquery-datalink/issues/14#issuecomment-531732),我
使用datalink插件的setField方法更新单选按钮的简单方法是什么,也许只需稍加修改?也许还有其他替代品/插件?多亏了此网站上某个问题的评论(https://github.com/jquery/jquery-datalink/issues/14#issuecomment-531732),我改编了在那里找到的黑客。通过按如下方式更改设置字段方法,它可以工作: (编辑-添加了设置复选框的代码) 之前:
if ( target.nodeType ) {
var setter = fnSetters[ field ] || "attr";
$(target)[setter](value);
之后:
if ( target.nodeType ) {
var setter = fnSetters[ field ] || "attr";
/* Hack to set radio buttons */
if ($(target).is(':radio')) {
$(target).parent().children(":radio[value='" + value + "']").attr('checked', true);
} else if ($(target).is(':checkbox')) {
if (target.value == value) $(target).attr('checked', true);
} else {
$(target)[setter](value);
}
编辑-我还在GitHub上创建了原始的datalink项目,并添加了以下更改:用以下更改更新了mydoghasworm的代码,以修复他在以下两个代码段中面临的“无法取消选中”问题
if ( m ) {
var name = m.name,
value = m.value,
convert = m.convert;
if (ev.target.attributes['type'].nodeValue === "checkbox") {
value = ev.target.checked;
}
if ( convert ) {
value = convert( value, ev.target, target );
}
if ( value !== undefined ) {
$.setField( target, name, value );
}
也
您是否有任何演示显示此功能正常工作?我自己也在试,运气不好。我已经在setField函数中添加了调试器行,但它们没有被命中。第一个代码段放在哪里?
} else if ($(target).is(':checkbox')) {
//value is whether or not checkbox is clicked
if (value)
$(target).attr('checked', true);
else
$(target).removeAttr('checked');