Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用按钮将标记添加到输入字段_Javascript_Jquery_Html_Input_Tags - Fatal编程技术网

Javascript 使用按钮将标记添加到输入字段

Javascript 使用按钮将标记添加到输入字段,javascript,jquery,html,input,tags,Javascript,Jquery,Html,Input,Tags,我正在为Wordpress使用一个名为WP User Frontend的插件。基本上,它允许用户从网站前端发布 有一个特性允许用户自己添加标签,但是,这只是一个普通的输入文本字段,我不希望他们创建无数的新标签 因此,基本上我希望他们能够单击几个按钮,将标签添加到输入字段,同时禁用手动输入。html复选框似乎适合您的需要,不是吗?您必须修改表单并将文本区域替换为复选框(脏但简单)您需要一个脚本,将复选框输入转换为原始标记输入所需的任何格式(例如,由空格分隔的字符串)。下面是一个示例脚本,它既将复选

我正在为Wordpress使用一个名为WP User Frontend的插件。基本上,它允许用户从网站前端发布

有一个特性允许用户自己添加标签,但是,这只是一个普通的输入文本字段,我不希望他们创建无数的新标签


因此,基本上我希望他们能够单击几个按钮,将标签添加到输入字段,同时禁用手动输入。html复选框似乎适合您的需要,不是吗?您必须修改表单并将文本区域替换为复选框(脏但简单)

您需要一个脚本,将复选框输入转换为原始标记输入所需的任何格式(例如,由空格分隔的字符串)。下面是一个示例脚本,它既将复选框插入原始输入下面的页面,又将结果值放入原始字段,确保以相同的方式发布。(如果不希望显示原始字段,则可以隐藏该字段。)

var标签=['cows'、'sheep'、'dogs'],
inp,label,ch=document.createElement('fieldset'),
f=document.getElementById('tagField');
//^原始输入的id=标记字段
f、 只读=真;
对于(var i=0;i
你能同时修改html和javascript吗?是的,我有权编辑我想要的任何内容!这正是我想要做的!更新:我尝试在我的网站上使用该代码,但表单似乎无法获取输入框中的值。知道为什么吗?我不清楚你的意思-你能试着更准确地描述一下你想要的行为和发生的情况吗?当我按下复选框时,文本会按要求显示在输入字段中。但是,输入字段(奶牛、绵羊、狗)中的文本似乎不是由表单发布的。这就像输入字段“tagField”是完全空的,即使文本显示在那里。我的错误是,
f.disabled='disabled'
应该替换为
f.readOnly=true
。(我已经在上面的代码中修复了这个问题。)事实证明,禁用该字段会阻止它发布任何信息。或者,您可以隐藏该字段(
f.style.display='none'
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);​