我正在使用一个名为 WP User Frontend 的 Wordpress 插件。基本上它允许用户从网站的前端发布。
有一个功能允许用户自己添加标签,但是,这只是一个普通的输入文本字段,我不希望他们创建无数的新标签。
所以基本上我想要的是让他们能够点击几个按钮,这些按钮会将标签添加到输入字段,同时也禁用他们的手动输入。
我正在使用一个名为 WP User Frontend 的 Wordpress 插件。基本上它允许用户从网站的前端发布。
有一个功能允许用户自己添加标签,但是,这只是一个普通的输入文本字段,我不希望他们创建无数的新标签。
所以基本上我想要的是让他们能够点击几个按钮,这些按钮会将标签添加到输入字段,同时也禁用他们的手动输入。
您将需要一个脚本,将复选框输入转换为原始标签输入所需的任何格式(例如,由空格分隔的字符串)。这是一个示例脚本,它将复选框插入到原始输入下方的页面中,并将结果值放入原始字段中,确保以相同的方式发布。(如果您不想显示原始字段,则可以隐藏它。)http://jsfiddle.net/zLVTp/8/
var tags = ['cows', 'sheep', 'dogs'],
inp, label, ch = document.createElement('fieldset'),
f = document.getElementById('tagField');
// ^ The original input has id=tagField
f.readOnly = true;
for (var i = 0; i < tags.length; i++) {
inp = document.createElement('input');
label = document.createElement('label');
label.innerHTML = tags[i];
label.htmlFor = 'tag_' + tags[i];
inp.type = "checkbox";
inp.name = "tagSet";
inp.className = 'tagCBs';
inp.value = tags[i];
inp.id = 'tag_' + tags[i];
ch.appendChild(inp);
ch.appendChild(label);
inp.onchange = (function() {
var th = inp;
return function() {
var sp, r = [];
if (th.checked && f.value.indexOf(th.value) == -1) {
if (f.value == '') f.value = th.value;
else f.value += ' ' + th.value;
}
else if (!th.checked) {
sp = f.value.split(' ');
for (var j = 0; j < sp.length; j++) {
if (sp[j] != th.value) r.push(sp[j]);
}
f.value = r.join(' ');
}
}
})();
}
f.parentNode.appendChild(ch);
html 复选框似乎符合您的需要,不是吗?您必须修改表单并用复选框替换文本区域(脏但简单)