2014-02-06 28 views
0

我正在使用名为'tagit'的jQuery插件。设置一个表格值为UL

我知道你不能发布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?

谢谢!

+0

我相信占位符属性仅在输入元素上可用。 –

+0

你想如何发布表单数据?使用PHP或使用Ajax?您可以将数据属性设置为UL并在js中进行验证。 – Roopendra

+0

对不起,是为了去除占位符。并发布使用PHP,但阿贾克斯进行验证。我有一个通过插件钻研,看看它是否提供任何信息 – Lovelock

回答

0

你可以做这样的事情:

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


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

而且然后你发送由'separator'隔开的LI,并用PHP分解它们。

0

你可以用简单的连接和一些jQuery tomfoolery制作逗号分隔的'数据'字符串。当然有更好的方法来做到这一点。

$(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,以为我删除了它的一个版本!对不起,不会重新创建它,但它使用了此页面的Events部分中的html http://aehlke.github.io/tag-it/examples.html

+0

谢谢:)我看现在执行:)! – Lovelock