2011-05-10 75 views
0

我试图克隆形式的一部分,而不包括该用户输入到所述第一表格。我使用In-字段标签jQuery插件的信息。如何克隆,而不包括输入值(使用

当我使用val('')来解决这个问题,输入的值不重复,但字段标签插件的水印不会显示,因为它应该 - 它只是空白。关于如何解决这个问题的任何建议,甚至如何使代码更加高效/正确?谢谢。

(function() { 
var count = 0; 

    $('#add-standard-button').live('click',function() { 

    var source = $('.details'), 
     clone = source.clone(); 

    clone.find('.copyme').val('').attr('id', function(i, val) { 
     return val + count; 
    }); 
    clone.find('.copyme').val('').attr('name', function(i, val) { 
     return val + count; 
    }); 
    clone.find('.placeholder').val('').attr('for', function(i, val) { 
     return val + count; 
    }); 

    clone.insertAfter('.details:last'); 

    count++; 

}); 

HTML:

<div class="details" id="standard-details"> 
    <div class="markName"> 
    <p> 
    <span class="markName-field"> 
     <label for="markName" class="placeholder"> 
     <span>Watermark Text Goes Here</span> 
     </label> 
     <input type="text" name="markName" id="markName" class="copyme"> 
    </span> 
    </p> 
</div> 
</div> 

回答

0

设置标题标签上的输入,然后拉从您的默认值。

clone.find('.copyme').val($(this).attr('title').attr('name', function(i, val) { 
     return val + count; 

看到一个例子:http://jsfiddle.net/4KLU5/

或者你可以使用HTML5数据标签

 <input type="text" data-default="default text" name="markName" id="markName" class="copyme"> 

clone.find('.copyme').val($(this).data('default')).attr('name', function(i, val) { 
     return val + count; 
+0

谢谢。不幸的是,这似乎并没有解决问题。如果用户已经在原始文本中输入了文本,则水印不会显示在克隆字段中。 – Ken 2011-05-10 04:01:44

+0

它们的关键在于永远不会破坏水印,如果您使用标题或数据标题之类的东西,则始终可以引用它作为其元素的一部分。看到这个:http://jsfiddle.net/4KLU5/ – wesbos 2011-05-11 13:41:55

+0

我想我可能在这里有问题,因为现场标签jQuery插件使用标签标签之间的文本作为水印。我使用的是插件而不是HTML5,因为当用户点击该字段时,该插件会显示较轻的水印版本。据了解,HTML5没有这个功能。 – Ken 2011-05-12 23:10:43