如何使用jquery更改匹配特定类的所有文本框的属性

时间:2012-07-05 09:44:16

标签: jquery html-form textinput

这是我的jquery代码。 http://jsfiddle.net/geekrule/ZnAvP/1/
当我选择一个图像时,会在图像的源中添加一个文本框,并添加一个“名称”属性。
现在当我取消选择图像时,我希望更新“名称”。
for ex: i select images 1,3,4,5 corresponding value of 'name' of input boxes will be 1,2,3,4 and now when i unselect images -3,4 value of 'name' should be 1 and 2(this part is what i am stuck at.the values i get are 1,4). 他们没有得到更新 希望你能理解这个问题。请帮助我。提前谢谢

1 个答案:

答案 0 :(得分:2)

在我看来,简单的解决方案是在每个图像选择上重新生成文本框:

<div id="selectList">
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
    <img src="http://tinyurl.com/26asnv7" />
</div><form id='if' name='forms' method='post'>
<button type='submit' class="uploadPic">Upload Fb</button>
</form>
​
$(function() {
    $("#selectList img").click(
    function(event) {
        if( !$(this).is(".clicked") && $("#selectList img.clicked").length >= 3){
            event.preventDefault();
            alert('only 3 photos allowed');
            return;
        }
        $(this).toggleClass("clicked");
        regenerateTextBoxes();
    });
});

function regenerateTextBoxes() {
    $('#if .selection').remove();
    $("#selectList img.clicked").each(function(index, element) {
        var $input = $('<div>', {
            'class': 'selection',
            'html': $('<input>', {
                'type': 'text',
                'value': $(this).attr('src'),
                'name': 'pics' + index
            })
        });

        $("#if").append($input);
    });
}​