ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이름 속성을 어떻게 바꿀 수 있습니까?
    카테고리 없음 2020. 8. 19. 16:32

    질문

    이 PHP 출력이 있습니다.

    $total.":".$newId;

    성공하면 live_update () 함수가 응답을 반향합니다. PHP 출력을 $ total & $ newId로 분할하고 기존 입력 이름 속성을 $ newId로 변경해야합니다. 이를 위해 몇 시간 동안 최선을 다했지만 성공하지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다. 이것은 live_update () 함수입니다.

    <script>
        function live_update(el) {
            var str = el.value ;
            var id  = el.id ;
            var name= el.name;
            
            if (str.length==0) { 
            document.getElementById("live_update").innerHTML="";
            
            return;
          }
    
          if (window.XMLHttpRequest) 
          {
            xmlhttp=new XMLHttpRequest();
          }
            
          xmlhttp.onreadystatechange=function() {
                var Resp = this.responseText;
                var SplitedId = id.split(".");  
              
                if(SplitedId[1] == "di")
                {
                    var Fres = Resp.split(":");
                    document.getElementsByName(name).name=Fres[1];
                    var Total = Fres[0];
                }else{
                    var Total = Resp;
                }
              
            
        if (this.readyState==4 && this.status==200) {
            document.getElementById("live_update").innerHTML=Total;
            document.getElementsByName("coupon_row").style.disabled='none';
            
         }
        }
          
          xmlhttp.open("GET","profiles.php?act=live_update&u_key={u_key}&name="+name+"&id="+id+"&q="+str,true);
          xmlhttp.send();
        }
    </script>

    답변1

    변화

    document.getElementsByName(name).name=Fres[1];

    document.getElementsByName(name)[0].setAttribute('name', Fres[1]);

    단일 요소의 이름을 변경하는 방법을 원한다고 추측합니다. 위와 같이 할 수 있습니다.

    같은 이름의 요소가 여러 개있는 경우 간단히 반복하고

    el.setAttribute('name', Fres[1])

    작동하기를 바랍니다!



    답변2

    HTML 요소에 이름을 설정하려면 setAttribute ()메서드를 사용해야합니다. 그래서 이것이 진행되는 방식입니다.

    document.getElementsByName(name)[0].setAttribute("name", Fres[1]);

    그리고 document.getElementsByName () 은 요소 목록을 반환하므로 첫 번째 요소가 필요하므로 [0]인덱스를 사용하고 표시된대로 이름을 설정해야합니다.
    live_update (el) 에 전달한 것과 동일한 요소를 업데이트하려면 다음을 수행하면됩니다.

    el.setAttribute("name", Fres[1]);


     

     

     

     

    출처 : https://stackoverflow.com/questions/63437118/how-can-i-replace-the-name-attribute

    댓글

Designed by Tistory.