2014-02-09 1 views
0

하나의 변수와 하나의 하드 코드 된 두 개의 POST 매개 변수를 보내는 JavaScript 함수가 있습니다. 그러나이 함수가 POST 매개 변수를 보내면 실제로는 첫 번째 매개 변수 만 보내고 두 번째 매개 변수는 보내지 않습니다. 이런 일이 왜 내가 알아낼 수 없습니다 함수 코드는 다음과 같습니다 당신이 <input2> 요소를 생성하기 때문에JavaScript 함수가 하나의 게시 매개 변수 만 전송합니다.

function post_to_url(path, params, method) { 

    method = method || "post"; // Set method to post by default if not specified. 
    var form = document.createElement("form"); 
    form.setAttribute("method", method); 
    form.setAttribute("action", path); 
    var hiddenField = document.createElement("input"); 
    hiddenField.setAttribute("type", "hidden"); 
    hiddenField.setAttribute("name", "sortvalue"); 
    hiddenField.setAttribute("value", params); 

    var hiddenFieldMode = document.createElement("input2"); 
    hiddenFieldMode.setAttribute("type", "hidden"); 
    hiddenFieldMode.setAttribute("name", "mode"); 
    hiddenFieldMode.setAttribute("value", "showmain"); 
    form.appendChild(hiddenField); 
    form.appendChild(hiddenFieldMode); 
    document.body.appendChild(form); 
    form.submit(); 

} 

답변

2

.. 나는 POST 데이터를보고 항상 sortvalue=givenvalue 예상대로되지 sortvalue=givenvalue&mode=showmain입니다 .

var hiddenFieldMode = document.createElement("input2"); 

변경이로 :

var hiddenFieldMode = document.createElement("input"); 
1

당신은 태그 이름 "입력 2"와 요소를 만드는 것입니다. 이는 <input> 요소로 해석되지 않습니다.

var hiddenFieldMode = document.createElement("input"); 
hiddenFieldMode.type = "hidden"; 
hiddenFieldMode.name = "mode"; 
hiddenFieldMode.value = "showmain"; 
:

새로운 DOM 노드의 속성을 설정 .setAttribute() (에 어떤 브라우저)를 사용 할 필요가 없습니다

관련 문제