1

我在使用 Jquery clone() 克隆多个元素时遇到问题。

我有 HTML:

<div id="is_watermark">
    <input class="is_watermark" type="checkbox" name="is_watermark" value="1" checked />
    <span>Add watermark</span></div>
<div id="minify_image">
    <p>By default image is 400px. You can change size:</p>
    <input class="minify-radio" type="radio" name="minify" value="200"  /><span>200px</span>
    <input class="minify-radio" type="radio" name="minify" value="400" checked="checked"/><span>400px</span>
    <input class="minify-radio" type="radio" name="minify" value="600" /><span>600px</span>
    <input class="minify-radio" type="radio" name="minify" value="800"/><span>800px</span>
</div>

然后我使用 ajaxFileUpload 基本上创建新表单并通过 ajax 发送图像:

我的 Javascript 中有以下内容:

var oldInputElements = $('.minify-radio, .is_watermark');
var newInputElements = $(oldInputElements).clone(true);
console.log(oldInputElements);
console.log(newInputElements);

在 Firebug 中,我认为这oldInputElements很好,并且代表了我在 HTML 中的内容,但是新创建的newInputElements包含所有元素,但只有一个来自无线电元素的通用值。例如,如果此时选择了值为 600 的单选,那么在新创建的变量中,newInputElements所有五个输入元素(包括复选框!)的值为 600。

这是一个错误,还是我只是错过了一些东西?

4

1 回答 1

0
$("input:radio").change( function() {
   $("input:radio").removeAttr("checked");
   $(this).prop("checked", true);
});

You can use this code. Removing checked property/attribute and then adding the attribute to current selected item/node.

Fiddle

于 2013-02-12T12:28:38.100 回答