Javascript 将表单值设置为UL的值
我正在使用一个名为“”的jQuery插件 我知道你不能发布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" /> 在这里添加您的标签 提交表单时,我
<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进行验证。我会仔细研究一下这个插件,看看它是否提供了任何信息。谢谢:)我现在会看看它的实现:)!