<form action="/settings" method="POST">
<ul style="list-style-type:none;margin:0;padding:0;">
<li><input type="checkbox" class="checkbox" value="slashdot.org -- http://rss.slashdot.org/Slashdot/slashdot" checked=""><b style="padding-left:15px;">slashdot.org -- http://rss.slashdot.org/Slashdot/slashdot</b></li>
<li><input type="checkbox" class="checkbox" value="postimees.ee -- http://www.postimees.ee/rss/" checked=""><b style="padding-left:15px;">postimees.ee -- http://www.postimees.ee/rss/</b></li>
</ul>
<div>
<button class="btn submit" id="submit">Submit</button>
</div>
<input type="hidden" name="sources" id="sources" class="sources" value="">
</form>
<script>
var feedValue="";
$('form').submit(function(){
$(".checkbox").each(function(){
if($('this').prop('checked',true)){
feedValue = feedValue + '+' + $('this').val();
console.log($('this').val());
};
});
$('#sources').attr('value',feedValue);
alert("done");
});
</script>
所以现在的问题是,我正在尝试获取选中的复选框的值,并将它们全部放入一个字符串中,并以 + 字符作为分隔符。问题是 JQuery 不会替换该隐藏输入字段的值,并且即使我目前从代码中省略了该行,它也会提交表单。
有谁知道问题是什么?
编辑:通过添加 $('form').submit() 我得到结果:+undefined+undefined,即使我有这些复选框的值。