Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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 将表单值设置为UL的值_Javascript_Php_Jquery_Html_Html Lists - Fatal编程技术网

Javascript 将表单值设置为UL的值

Javascript 将表单值设置为UL的值,javascript,php,jquery,html,html-lists,Javascript,Php,Jquery,Html,Html Lists,我正在使用一个名为“”的jQuery插件 我知道你不能发布UL,但我怎么才能避免呢 假设我有: <ul name="addtags" id="addtags" class="addtags" placeholder="Tags"> <li>Add your tags here</li> </ul> <input type="hidden" name="addtagsReal" /> 在这里添加您的标签 提交表单时,我

我正在使用一个名为“”的jQuery插件

我知道你不能发布UL,但我怎么才能避免呢

假设我有:

<ul name="addtags" id="addtags" class="addtags" placeholder="Tags">
     <li>Add your tags here</li>
</ul>

<input type="hidden" name="addtagsReal" />
  • 在这里添加您的标签
提交表单时,我使用javascript进行验证。所以我想,在我的验证中,我可以简单地将隐藏的“addtagsReal”输入设置为ul的输入

如何使用jQuery实现这一点


谢谢

您基本上需要一种“序列化”列表的方法,一个较旧的jquery插件可以做到这一点:


您可以这样做:

var separator = ",";
var str = $('#addtags').children('li').map(function(i,el){
   return($(el).text()); 
}).get().join(separator);


$('input[name="addtagsReal"]').val(str);

然后发送以“分隔符”分隔的LIs,并用PHP将其分解。

您可以通过简单的连接和一些jQuery愚蠢的操作生成逗号分隔的“数据”字符串。当然还有更好的方法

$(document).ready(function(){
    var sampleTags = ['c++', 'java', 'php'],
        eventTags = $('#eventTags');

    eventTags.tagit({
        availableTags: sampleTags,
        afterTagAdded: function(evt, ui) {
            updateTagInput();
        },
        afterTagRemoved: function(evt, ui) {
            updateTagInput();
        }

    });
});

function updateTagInput() {
    var $hidden = $('input[name=addtagsReal]'), 
        values = "";

    $('#eventTags').find('.tagit-label').each(function(i, item){
        values += $(item).text() + ', ';
    });

       // update the input and trim the final ', ' 
   $hidden.val(values.substr(0, values.length - 2 ));
}

编辑:哎呀!删除了plunk,还以为我在删除它的一个版本呢!抱歉,不打算重新创建它,但它使用了此页面事件部分的html

我相信占位符属性仅在输入元素上可用。您希望如何发布表单数据?使用php还是使用ajax?您可以将数据属性设置为UL并在js中进行验证。这意味着删除占位符。并使用PHP发布,但使用ajax进行验证。我会仔细研究一下这个插件,看看它是否提供了任何信息。谢谢:)我现在会看看它的实现:)!