Jquery .attr()无法更新输入字段的名称

时间:2017-03-28 11:34:08

标签: php jquery html

以下是我的html代码,我在其中调用一个函数来删除所选图像,该图像在输入标记的name属性中存储。

<input id="im1" type="file" name ="upimage1" onchange="readURL(this);" class="upload" required/>
            <span class="trash-area1" id="im1" onclick="readUR(this)"><img class="trash-box" src="img/trash.png" width="24px" height="24px"></span>

以下是我的jquery代码,它可以调用onclick函数。它不会让我将name属性清空输入标记。

function readUR(input) {    
            var id = $(input).attr('id');
            var ch = id.substr(id.length - 1);
            $('.trash-area'+ ch).css('display','none');
            $('#'+id).attr('src','img/plus.png');  
            $('#'+id).attr('name','');                      
    }

5 个答案:

答案 0 :(得分:1)

您的元素具有相同的ID属性。重命名其中一个。

以下是修改后的代码:

<input type="file" name="upimage1" onchange="readURL(this);" class="upload" required/>

<span class="trash-area">
    <img class="trash-box" src="img/trash.png" width="24px" height="24px">
</span>

<script>
    $('body').on('click', '.trash-area', function () {
        $(this).prev().attr('name', '');
    })
</script>

https://jsfiddle.net/rn78L9kh/

答案 1 :(得分:0)

$('button').on('click', function() {
  $('span[name]').removeAttr('name');
});
span {
  background-color: tomato;
}

span[name] {
  background-color: DodgerBlue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span name="test">Can I haz name? Name exists -> Blue, otherwise red</span>

<button>Remove name</button>

答案 2 :(得分:0)

重命名来自id&amp;的span属性input 然后,尝试下面的内容:

function readUR(input) {    
            var id = $(input).attr('id');
            var ch = id.substr(id.length - 1);
            $('.trash-area'+ ch).css('display','none');
            $('#'+id+ " img").attr('src','img/plus.png');  
            $('#'+id+ " img").attr('name','');                      
    }

答案 3 :(得分:0)

更正代码如下......

<input id="im1" type="file" name ="upimage1" onchange="readURL(this);" class="upload" required/>
<span class="trash-area1" id="im1" onclick="readUR()">
    <img class="trash-box" src="img/trash.png" width="24px" height="24px">              
</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<script>
 function readUR() {
    var id = $('input').attr('id');
    var ch = id.substr(id.length - 1);
    $('.trash-area'+ ch).css('display','none');
    $('#'+id).attr('src','img/plus.png');  
    $('#'+id).attr('name','');
}
</script>

答案 4 :(得分:0)

首先,你的jquery函数叫做readUR,但是你正在调用readUR L (this)。先解决这个错字。