2012-06-11 3 views
1

http 요청 페이로드에서 div 컨테이너의 innerHTML을 수정하는 효과가 해당 div에 양식 필드가 포함되어 있다면 어떻게됩니까? 나는 두 개의 필드에 값을 입력하고 제출을 클릭하면innerHTML을 사용하여 html 요소 수정하기 - httprequest에 효과가 있습니다.

이이 내가 크롬의 요청 필드에서 본 값,

<html> 
<body> 
     <script type="text/javascript"> 

     function changeDropdown(){ 
      document.getElementById('divId').innerHTML=""; 
      var options = "<select name='suffix' id='suffix'></select>"; 
      document.getElementById('divId').innerHTML=options;   

     } 
    </script> 
    <br><br> 
    <p>testing http header issue</p> 
    <a href="javascript:changeDropdown()">Change dropdown</a> 
    <form name="test" action="second.html" method="post"> 
     <table align="center"> 
      <tr> 
       <td> 
        <label for="name">Name</label> 
       </td> 
       <td> 
        <input type="text" name="name"/> 
       </td> 
      </tr>  
      <tr> 
       <td> 
        <label for="suffix">Suffix</label> 
       </td> 
       <td> 
        <div id="divId"> 
         <select name="suffix" id="suffix"> 
          <option value="Mr" selected=selected>Mr</option> 
          <option value="Mrs" selected=selected>Mrs</option> 
          <option value="Ms" selected=selected>Ms</option> 
         </select> 
        </div> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2"><input type="submit" value="submit"</td> 
      </tr> 
     </table> 
    </form> 
</body> 

first.html입니다. (네트워크 -> 헤더)

**Request Payload** 
     name=Batman&suffix=Mr 

이제 first.html을 다시 엽니 다. 이번에는 "드롭 다운 변경"링크를 클릭하십시오. 이렇게하면 모든 옵션이 제거됩니다. 이제 이름을 입력하고 제출을 클릭하십시오.

**Request Payload** 
     name=Batman 

매개 변수 "접미사"는 HTTP에서 사라 크롬의 헤더에 값이 (?) 목록을 PARAMS. innerHTML을 사용하여 양식에 완전한 선택 요소를 다시 추가했습니다. 그러나 그것은 어떤 이유로 인식되지 않고 있습니다.

내가 텅 빈 옵션을 선택 필드에 추가하면 흥미롭게도 선택됩니다. 이런 내가, 공유 할하시기 바랍니다 위와 같이 더미 옵션을 추가 할 필요없이이 문제를 해결하기 위해 무엇을 할 수있는 이유 사람이 알고있는 경우에

document.getElementById('divId').innerHTML=""; 
var options = "<select name='suffix' id='suffix'><option value=''></option></select>"; 
document.getElementById('divId').innerHTML=options; 

에 자바 스크립트 함수 즉 변화. 감사!

+0

글쎄, 현재 콘텐츠를 지우고 _blank_ 드롭 다운을하는 상황에서 게시 할 내용은 무엇입니까? Chrome은 올바르게 작동하며 기대했던대로 작동합니다. 당신이하려고하는 것은 거꾸로 보이는 것입니다 = D – Tejs

+0

innerHTML은 양식 필드에 몇 가지 문제가 있습니다. select 요소가 innerHTML로 추가 된 경우 일부 브라우저에서는 (어떤 셀이 기억이 나지 않는) 옵션을 표시하지 않습니다. jQuery와 같은 JavaScript 라이브러리가 이러한 문제를 처리합니다. 당신은 정말로 하나를 사용해야합니다. – Andre

+0

@Tejs .. 요청 개체가 "접미사"라는 이름의 매개 변수를 갖지만 null 값을 갖길 기대했습니다. 내가하려고했던 것은 ..이 페이지는 처음에 struts 폼 빈으로 채워진다. 접미사 = Mr이라고 말할 수 있습니다. 이제 매개 변수 변경을 클릭하고 제출을 클릭하면 struts 액션 양식이 접미사를 null로 재설정합니다. 하지만 실제로 일어나고있는 것은 요청에 따라 "접미사"라는 매개 변수를 찾아서 찾을 수없는 액션 양식입니다. 그래서 그것은 내가 원하는 것이 아닌 오래된 가치를 유지합니다. – RKodakandla

답변

0

전적으로 사실입니다. <select>을 다시 추가하면 옵션을 추가하지 않아 크롬이 설정되지 않을 수 있습니다 (설정되지 않기 때문에).

이것은 빈 <option>이 필요한 결과를 다시 생성한다는 사실로 확인됩니다.

관련 문제