如何克隆而不包括输入值(使用

时间:2011-05-10 01:05:24

标签: jquery clone auto-increment watermark

我正在尝试克隆表单的一部分而不包括用户输入到第一个表单中的信息。我正在使用In-Field Labels jQuery插件。

当我使用val('')来解决这个问题时,输入的值不会重复,但是In-Field Labels插件的水印没有显示出来 - 它只是空白。

有没有人对如何解决这个问题有任何建议,甚至如何让代码更有效/更正确?谢谢。

(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>

1 个答案:

答案 0 :(得分: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;