.val()
не добавляется .. оно задает значение, которое вы передаете, перезаписывая предыдущее значение.
$('#submit').click(function() {
var myInput = $('#MyInput').val('')[0];
if($('#box1').attr('checked')){
myInput.value += 'box1 ';
alert('1');
}
if($('#box2').attr('checked')){
myInput.value += 'box2 ';
alert('2');
}
else {}
});
И если у вас есть несколько флажков, которые вы хотите, чтобы все их значения добавлялись в элемент myInput, если они отмечены, вы можете добавить класс ко всем из них и просто сделать
$('#submit').click(function() {
var myInput = $('#MyInput').val('')[0];
$('.common-class-to-all:checked').each(function(){
myInput.value += this.value + ' ';
});
});
демо http://jsfiddle.net/SQcGq/