douhan1992
2017-03-28 11:34
采纳率: 100%
浏览 44

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

Following is my html code where i am calling a function to delete the selected image which gets store in name property of input tag.

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

Following is my jquery code which gets a call on onclick function. its not letting me make name attribute empty of input tag.

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','');                      
    }

图片转代码服务由CSDN问答提供 功能建议

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

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

以下是我的jquery代码,可以在onclick上调用 功能。 它不允许我使name属性为空输入标记。

  function readUR(input){
 var id = $(input).attr('id'); \  n var ch = id.substr(id.length  -  1); 
 $('。trash-area'+ ch).css('display','none'); 
 $('#'+ id)  .attr( 'SRC', 'IMG / plus.png');  
 $('#'+ id).attr('name','');  
} 
   
 
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • dtdh11647 2017-03-28 11:38
    已采纳

    You have same ID attribute on your elements. Rename one of them.

    Here is modified code:

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

    打赏 评论
  • dongzong5017 2017-03-28 11:38

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

    </div>
    
    打赏 评论
  • douxianji6104 2017-03-28 11:42

    Rename the id attributes from span & input then , try the below:

    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','');                      
        }
    
    打赏 评论
  • dongqiao8502 2017-03-28 11:45

    Correct code as follows...

    <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>
    
    打赏 评论
  • dtrj21373 2017-03-28 11:52

    First of all your jquery function is called readUR, but you are calling readURL(this). Fix this typo first.

    打赏 评论

相关推荐 更多相似问题